我的目录结构如下:/User/JAVA/MyProject/

MyProject文件夹中,有我的Main.javaHelper.java文件

JAVA文件夹中,我有两个JAR文件:jar1.jarjar2.jar

我想将类路径设置为这两个JAR,以便可以在我的Main.javaHelper.java文件中使用它们。很简单的。

为此,我从终端尝试了以下内容(以及许多其他变体):

user:MyProject $ javac -cp“ /User/JAVA/jar1.jar:/User/JAVA/jar2.jar:”。 Main.java

编辑:我现在按照建议使用此命令,并收到相同的错误

user:MyProject$ javac -cp "/User/JAVA/jar1.jar:/User/JAVA/jar2.jar:." Helper.java Main.java


根据我的阅读,这应该有效。我已经指定了两个JAR的绝对位置,并用冒号:分隔了它们(我在OSX上),并且还包括了当前目录.。然后,我用main指定了包含Main.java方法的文件。

不幸的是,当我尝试编译时,在JAR中,类的方法始终收到“找不到符号”。

此外,当我尝试System.out.println(System.getProperty("java.class.path"));时,会收到以下输出.,表明我的类路径仍设置为当前目录。



我的错误是这样的:

/User/JAVA/MyProject/Helper.java:13 cannot find symbol
symbol: variable StdOut
location: class Helper


要注意:
当我在Eclipse中打开项目并通过IDE添加类路径时,所有操作均按预期进行,并且在编译过程中未出现任何错误消息。不过,我仍然想弄清楚如何在没有IDE的情况下从终端执行此操作。

我在做什么错,该如何解决?
谢谢。

最佳答案

在编译或运行时使用-cp设置类路径。这将覆盖(忽略)您将在env变量CLASSPATH中放置的所有内容。

由于您没有发布实际的错误,因此我猜测丢失的符号来自Main所引用的其他类。将其添加到命令:


  javac -cp“ /User/JAVA/jar1.jar:/User/JAVA/jar2.jar:”。 Helper.java Main.java


由于OP发布实际错误而进行编辑:您的类中存在一个错误,导致其无法编译。它与jar文件或类路径无关。您正在尝试使用/引用不存在的名为StdOut的变量。

10-04 12:37
查看更多