Noobie无法使Java类路径工作

时间:2012-03-13 19:51:24

标签: java classpath

我对java很新,只是无法获得依赖外部库工作的java应用程序......

我有两个库和一个应用程序,都是从eclipse作为jar导出的。 注意:我不希望它们全部导出到同一个jar中,因为我希望在其他地方重新使用这两个库。

  1. enix.lib.common.jar(图书馆1)
  2. enix.lib.events.jar(library 2)
  3. enix.cmd.events.jar(控制台应用程序)
  4. 当我跑步时:

    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) - 我然后设置classpath以各种方式如此:

    java -cp ".;*.jar;enix.lib.events.jar" -jar enix.cmd.events.jar
    

    但我得到同样的错误。 :( 我还有一个名为enix.gnome.events.jar的GUI应用程序,它依赖于/ usr / share / java和/ opt / libs / jars中的各种jar。

    有人可以解释一下我的错误以及为什么,我将非常感激!谢谢!

2 个答案:

答案 0 :(得分:2)

不幸的是,<。>。。jar不起作用。您可以在java类路径中使用通配符,但只能将所有jar放在一个目录中,并告诉类路径使用那里的每个jar(参见this)。

我建议,只列出你明确需要的每个罐子。按照惯例,你会看到大多数应用程序列出每个jar。

答案 1 :(得分:1)

在编译/运行具有多个jar的java应用程序时,我发现最简单的方法是将适用的jar添加到我的类路径中。这样,当您编译或运行程序时,所有适用的jar都可用。

有关在Windows / Unix / Linux中设置类路径的信息,请参阅http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html