在Windows上运行jar命令行(Classpath)

我知道这已经是一个很老的和常见的问题,但是我仍然无法得到它的工作!

我正在使用Intellij开发Windows 7上的Java程序,在编译时添加工件的文件输出以生成一个jar文件。 该程序在IDE中正常工作,现在我想在命令行中不使用IDE来运行它。

目录结构如下所示:

项目

-out --ProjectName ---project.jar -lib (under lib there are all the jar libraries used in the project) -.. 

(希望你能理解上面说明的结构)

所以我进入了project.jar所在的目录,然后input以下内容:

 java -cp ..\..\..\lib -jar project.jar 

我得到了NoClassDefFoundErrorexception的错误信息,但实际上这个类被包含在lib目录下的一个jar文件中。

这应该是非常简单的,但我不能让它工作。

请帮忙! 非常感激!

我遇到了一个类似的问题..并想出了一个解决方案..我不知道这是否已经给予..如果这样忽略这个..该场景是基于Maven包文件(jar)与类名称运行JAVA学习者。 所以为此使用命令: java -classpath jarfile packagename.classname例如:java -classpath target \ MavenTest-1.0-SNAPSHOT.jar org.first.edu.App

尝试java -cp ..\..\..\lib\*.jar -jar project.jar如果您不想单独列出所有jar

我发现问题和解决方案。 如果我使用-jar参数运行project.jar,则-classpath参数将被忽略,反之亦然。 所以我在.jar文件中添加了类路径(通过Intellij中的类路径文本框完成),并尝试了几次。 最后我发现,我需要指定以点开头的类路径! 这意味着相对路径从当前目录开始,然后进一步。 这是相当令人惊讶的,因为我相信一个强制的点来表示当前目录只在Linux中使用(当我使用Windows时)。 似乎Java处理这个不同。

首先确保你正在保存你的jar的目录中运行命令,然后在命令提示符中输入这个命令:

java -cp“<您的Jar名称:Jar Lib>”<您的包名称和主类 – >

例如 : –

java -cp“project.jar:lib / *”com / foo / bar / main