Java 编译依赖于jar的打包项目

Java 编译依赖于jar的打包项目,java,bash,command-line,jar,package,Java,Bash,Command Line,Jar,Package,在我看来,这是一个微不足道的问题,但我一直很难找到答案 我在eclipse中开发了一个依赖于jar文件的项目,jar文件位于项目的根目录中。我的所有文件都在src文件夹中的包“a.b.c”中。它在eclipse中运行得很好。我现在想从命令行运行这个项目。我执行以下命令来编译项目: javac-classpath dependency.jar-d./bin//src/a/b/c/*.java 所有内容都被编译成类文件并放入bin/a/b/c文件夹。然后执行以下命令来运行项目: 光盘盒 java-c

在我看来,这是一个微不足道的问题,但我一直很难找到答案

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

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

所有内容都被编译成类文件并放入bin/a/b/c文件夹。然后执行以下命令来运行项目:

光盘盒

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

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


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

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


只需将当前目录也包括在类路径中,即
java-cp../dependency.jar:。a、 b.c.Main

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