Java项目无法识别生成的jar文件中的导入

Pro*_*bio 0 java jar manifest

我使用命令行jar cvfm server-model.jar nz生成一个名为的jar文件server-model.jar

一些输出:

adding: nz/api/pojos/core/util/(in = 0) (out= 0)(stored 0%)
adding: nz/api/pojos/core/util/RenderMarkdownReqMsg.java(in = 845) (out= 283)(deflated 66%)
adding: nz/api/pojos/core/util/RenderMarkdownRespMsg.java(in = 904) (out= 296)(deflated 67%)
Run Code Online (Sandbox Code Playgroud)

之后我跑了 jar -tvf server-model.jar

一些输出:

   0 Wed Jul 02 16:52:20 NZST 2014 nz/api/pojos/core/util/
  845 Wed Jul 02 16:52:20 NZST 2014 nz/api/pojos/core/util/RenderMarkdownReqMsg.java
   904 Wed Jul 02 16:52:20 NZST 2014 nz/api/pojos/core/util/RenderMarkdownRespMsg.java
Run Code Online (Sandbox Code Playgroud)

我的问题是一个简单的Java项目(因为我几乎尝试了所有东西而项目实际上使用了Maven)不能使用这些类,因为import语句不能识别它们.

它认为MANIFEST.MF和/或类路径存在问题.任何建议表示赞赏.

MANIFEST.MF

Manifest-Version: 1.0
Created-By: 1.7.0_45 (Oracle Corporation)
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 6

您的jar文件包含代码 - 如果要将jar文件用作项目中的库,则需要先编译源代码,然后将类文件放在jar文件中.

例如:

$ javac -d bin src/nz/api/pojos/core/util/*.java
$ jar -C bin -cvf server-model.jar nz
Run Code Online (Sandbox Code Playgroud)

然后运行jar tvf server-model.jar你应该看到.class文件.

您可能希望在jar文件中包含源代码,因为IDE可以获取源代码并允许您在主项目中查看它,并调试该代码.但它不是建筑所必需的.