【问题标题】:Using -classpath on terminal doesn't work在终端上使用 -classpath 不起作用
【发布时间】: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 中的类名和应用程序参数之前。 javajavac 请参考手册条目。

标签: java command-line classpath


【解决方案1】:

-cp 参数必须在 javac 中的源文件名和 java 中的类名和应用程序参数之前。请参阅 java 和 javac 的手册条目。 ——斯蒂芬·C

谢谢!这确实是我做错了。

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 2013-11-14
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 2020-12-16
    相关资源
    最近更新 更多