编译依赖于jar的打包项目

时间:2011-12-02 23:13:35

标签: java bash command-line jar package

在我看来这是一个微不足道的问题,但我在回答时遇到了很多麻烦。

我在eclipse中开发了一个依赖于jar文件的项目,该文件位于项目的根目录中。我的所有文件都在src文件夹中的“a.b.c”包中。它在日食中运行得很好。我现在想从命令行运行这个项目。我执行此命令来编译项目:

  

javac -classpath dependency.jar -d ./bin/ ./src/a/b/c / * .java

将所有内容编译到类文件中并放入bin / a / b / c文件夹中。然后我执行这些命令来运行项目:

  

cd bin

     

java -cp ../dependency.jar a.b.c.Main

现在我得到“java.lang.NoClassDefFoundError:a / b / c / Main”。

那么,如何运行包中的项目并依赖于jar文件?

2 个答案:

答案 0 :(得分:1)

您还需要在类路径中指定已编译的文件,这些文件将包含您的a.b.c.Main。在* nix flavor机器上,cp的路径分隔符是冒号(:),在Windows上它是分号(;),所以在* nix上,你的运行命令应该是(因为你是从bin目录运行):

java -cp ../dependency.jar:. a.b.c.Main

答案 1 :(得分:1)

只需在类路径中包含当前目录 - 即java -cp ../dependency.jar:. a.b.c.Main