Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Noobie can';无法使Java类路径正常工作_Java_Classpath - Fatal编程技术网

Noobie can';无法使Java类路径正常工作

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相当陌生,只是无法让依赖外部库的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.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中带来了什么?