Noobie can';无法使Java类路径正常工作
我对java相当陌生,只是无法让依赖外部库的java应用程序正常工作 我有两个库和一个应用程序,都是作为JAR从eclipse导出的。 注意:我不希望将它们全部导出到同一个jar中,因为我希望在其他地方重用这两个库Noobie can';无法使Java类路径正常工作,java,classpath,Java,Classpath,我对java相当陌生,只是无法让依赖外部库的java应用程序正常工作 我有两个库和一个应用程序,都是作为JAR从eclipse导出的。 注意:我不希望将它们全部导出到同一个jar中,因为我希望在其他地方重用这两个库 enix.lib.common.jar(库1) enix.lib.events.jar(库2) enix.cmd.events.jar(控制台应用程序) 当我跑步时: java -jar enix.cmd.events.jar 我得到: 线程“main”java.lang.NoCl
java -jar enix.cmd.events.jar
我得到:
线程“main”java.lang.NoClassDefFoundError中的异常:enix/lib/events/errors/EventLogNotAvailableException
这显然意味着它没有到enix.lib.events.jar的路径(如果重命名为zip文件,其中包含文件enix/lib/events/errors/EventLogNotAvailableException.class)——然后我以各种方式设置类路径,如下所示:
java -cp ".;*.jar;enix.lib.events.jar" -jar enix.cmd.events.jar
但我也犯了同样的错误(
我还有一个名为enix.gnome.events.jar的GUI应用程序,它依赖于/usr/share/java和/opt/libs/jars中的各种jar
请有人解释一下我错了什么以及为什么,我将非常感激!谢谢!*。不幸的是,jar不起作用。您可以在java类路径中使用通配符,但只能将所有jar放在一个目录中,并告诉类路径使用存在的每个jar(请参阅)
不过,我建议您明确列出您需要的每个jar。通常,您会看到大多数应用程序都会列出每个jar。当使用多个jar编译/运行java应用程序时,我发现最简单的方法就是将适用的jar直接添加到我的类路径中。这样,当您编译或运行程序时,所有可提供适用的罐子
有关在Windows/Unix/Linux中设置类路径的信息,请参阅。这看起来像您的答案:谢谢,但按文件名显式包含jar的事件似乎不起作用(请参阅上文)-将在不使用通配符的情况下重试,但我感觉有其他事情正在发生以阻止此工作..?但我在类路径中明确提到了enix.lib.events.jar,它仍然不工作?有什么想法吗?您可以发布新命令吗?您是在windows或UNIX上运行吗?尝试用冒号.Linux替换分号。这仍然有效抛出一个错误:java-cp“enix.lib.events.jar”-jar enix.cmd.events.jar我将尝试此方法,看看它是否解决了问题,尽管我认为是一些更微妙的原因导致了我的问题。我给你的答案加了一分,因为这项技术很好,谢谢!CLASSPATH=“enix.lib.events.jar”java-jar enix.cmd.events.jar-在Ubuntu上仍然中断:(@tommed-你在你的类路径中包括了其他jar吗(enix.lib.common.jar&enix.lib.events.jar&任何其他的…)?还有,
echo$classpath
从你的Linux shell中带来了什么?