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

时间:2014-07-02 06:02:45

标签: java jar manifest

我使用命令行jar cvfm server-model.jar nz生成名为server-model.jar

的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%)

之后我正在运行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

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

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

MANIFEST.MF

Manifest-Version: 1.0
Created-By: 1.7.0_45 (Oracle Corporation)

1 个答案:

答案 0 :(得分:6)

你的jar文件包含 source 代码 - 如果你想在项目中使用jar文件作为库,你需要先编译源代码,然后放入类文件< / jar>在jar文件中。

例如:

$ javac -d bin src/nz/api/pojos/core/util/*.java
$ jar -C bin -cvf server-model.jar nz

然后运行jar tvf server-model.jar您应该会看到.class个文件。

希望将源代码包含在jar文件中,因为IDE可以获取源代码并允许您在主项目中查看它,并调试该代码。但构建并不需要它。