我的目录结构如下:/User/JAVA/MyProject/
在MyProject
文件夹中,有我的Main.java
和Helper.java
文件
在JAVA
文件夹中,我有两个JAR文件:jar1.jar
和jar2.jar
我想将类路径设置为这两个JAR,以便可以在我的Main.java
和Helper.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
的变量。