1

我知道这已经是一个非常古老且常见的问题,但我仍然无法让它发挥作用!

我正在使用 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所在的目录,输入以下内容:

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

我收到异常的错误消息NoClassDefFoundError,但确实该类包含在 lib 目录下的 jar 中。

这应该很简单,但我不能让它工作。

请帮忙!非常感激!

4

4 回答 4

1

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

于 2015-01-22T18:02:40.260 回答
0

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

于 2013-08-10T10:31:20.150 回答
0

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

于 2013-08-09T17:51:54.850 回答
0

First of all make sure you are running the command from the directory in which your jar is kept then enter this command in the command prompt:

java -cp "<-Your Jar Name:Jar Lib>" <-Your Package name and main class->

For example :-

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

于 2013-08-10T11:13:27.787 回答