尝试运行Java类时没有提供正确的类路径,我得到NoClassDefFoundError。但是当添加所需的类路径时,java抱怨它无法找到main方法。如果您对此处发生的事情有任何了解,请指出我正确的方向。谢谢
$ java MyClass
Exception in thread "main" java.lang.NoClassDefFoundError: cern/colt/matrix/DoubleMatrix1D
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2615)
at java.lang.Class.getMethod0(Class.java:2856)
... 6 more
$ java -cp resources/colt.jar MyClass
Error: Could not find or load main class MyClass
答案 0 :(得分:1)
假设MyClass
不在包中,您需要类似(在Windows上)
java -cp resources/colt.jar;. MyClass
或(否则)
java -cp resources/colt.jar:. MyClass
还包括当前目录。或者,您可以设置CLASSPATH
环境变量。
在Windows上,
set "CLASSPATH=resources/colt.jar;."
否则就像(取决于你的shell)
export CLASSPATH="resources/colt.jar:."
然后
java MyClass
答案 1 :(得分:1)
尝试将当前目录包含在类路径中。通常我们在classpath中添加新的jar:这是:
java -cp %CLASSPATH%;resource/colt.jar MyClass
或在Linux上:
java -cp $CLASSPATH:resource/colt.jar MyClass
另外你也可以添加。
,即类路径的currrent目录。