【发布时间】:2019-12-29 21:47:38
【问题描述】:
当我尝试使用 -classpath 选项时,我无法执行任何程序。
我可以编译它
javac FirstClass.java -cp C:\Users\pierr\Desktop\Isitgonnawork
但是在执行时,
java FirstClass -cp .;C:\Users\pierr\Desktop\Isitgonnawork
我得到了这个例外:
Exception in thread "main" java.lang.NoClassDefFoundError: StdOut
at FirstClass.main(FirstClass.java:5)
Caused by: java.lang.ClassNotFoundException: StdOut
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
当类路径是一个 jar 文件并且它是一个包含 java 文件的简单目录时会发生这种情况。
奇怪的是,当我把目录/jar文件的路径放到Windows的CLASSPATH环境下,编译运行没有问题,但是没有使用-classpath选项...
我在 Windows 上。
提前感谢您的帮助!
【问题讨论】:
-
以及当它是一个包含 java 文件的简单目录时。 - Java 文件需要编译,否则它们将无法执行。在运行
java之前,您应该在所有源文件上运行javac。 -
-cp参数必须在javac中的源文件名以及java中的类名和应用程序参数之前。java和javac请参考手册条目。
标签: java command-line classpath