在我看来这是一个微不足道的问题,但我在回答时遇到了很多麻烦。
我在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文件?
答案 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