很简单的一个例子
package lx;
class Hello
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}目录结构为
D:\hello
| lx
| Hello.class
| manifest.mfmanifest.mf里的内容是
Main-Class: lx.Hello (有回车)打包命令是
jar cvfm hello.jar manifest.mf hello
压缩成功,在d:\hello下生成一个hello.jar
然后我用 java -jar hello.jar (已经入D:\hello目录下)
它抛出一个异常:Exception in thread "main" java.lang.NoClassDefFoundError: lx/Hello而我直接用 java lx/Hello
执行是正常的我的环境配置是
java_home C:\Program Files\Java\jdk1.6.0
PATH C:\Program Files\Java\jdk1.6.0\bin
CLASSPATH .;C:\Program Files\Java\jdk1.6.0\lib\tools.jar;C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jarOS是vista sp1
以上哪里有问题吗
请指教
package lx;
class Hello
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}目录结构为
D:\hello
| lx
| Hello.class
| manifest.mfmanifest.mf里的内容是
Main-Class: lx.Hello (有回车)打包命令是
jar cvfm hello.jar manifest.mf hello
压缩成功,在d:\hello下生成一个hello.jar
然后我用 java -jar hello.jar (已经入D:\hello目录下)
它抛出一个异常:Exception in thread "main" java.lang.NoClassDefFoundError: lx/Hello而我直接用 java lx/Hello
执行是正常的我的环境配置是
java_home C:\Program Files\Java\jdk1.6.0
PATH C:\Program Files\Java\jdk1.6.0\bin
CLASSPATH .;C:\Program Files\Java\jdk1.6.0\lib\tools.jar;C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jarOS是vista sp1
以上哪里有问题吗
请指教
你把打包好的hello.jar放入C:\Program Files\Java\jdk1.6.0\lib下
然后在classpath中把C:\Program Files\Java\jdk1.6.0\lib\hello.jar加到环境变量classpath里面,
javac hello.java试一下!应该可以了
第二,你的类是Hello不是 helloJAVA是区分大小写的
javac 是编译 跟我这个有什么关系么
我编译都没有问题
manifest.mf 后面的应该是一个要打包的目录
我按照你打包 它提示找不到lx.Hello文件夹
但仍然生成一个hello.jar包,但是里面只有manifest.mf,没有lx/hello.class
我把hello改成lx就可以了
谢谢