Java编译/运行时类路径问题

时间:2012-06-19 13:25:09

标签: java classpath

我正在尝试构建Java SNMP客户端。我的Ubuntu桌面上有一个名为snmpclient的文件夹。在该文件夹中,我有主类Client.java和主类使用的snmp.jar库。

我设法在终端上使用以下命令成功编译它:

~/Desktop$ javac snmpclient/Client.java -classpath ./snmpclient/snmp.jar 

然后我尝试用这个命令运行它:

~/Desktop$ java snmpclient.Client -classpath ./snmpclient/snmp.jar

但是我收到一个“java.lang.ClassNotFoundException”错误,说它无法找到snmp库的类。我解压缩了jar文件以确保我使用的类都在那里,而且它们都是。

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

我会重新排列你的args:

~/Desktop$ java -classpath ./snmpclient/snmp.jar snmpclient.Client

这样你的类路径就会在类之前运行。请注意,如果未指定-classpath,则类路径默认为当前目录,因此您的完整调用应为:

~/Desktop$ java -classpath ./snmpclient/snmp.jar:. snmpclient.Client

指定类所在的根目录(即点), plus SNMP jar文件。

-classpath arg由jar文件和以冒号分隔的目录路径组成。有关设置类路径的详细信息,请参阅here