使用jar中的导入类编译java时出错

时间:2015-07-14 17:02:39

标签: java jar import classpath javac

我在Linux上编译Java源文件时遇到问题。我的源文件(PetersTeam.java)从存储在与源相同的文件位置的jar中导入类。我收到错误声明包含类的包不存在。我在网上找到了以下命令的许多不同版本,但似乎都没有。任何帮助将不胜感激。

javac -cp testjar.jar PetersTeam.java

以下是我的导入,它与jar中的包结构相匹配:

import org.gamelink.game.Cram;
import org.gamelink.game.Algo;

以下是错误:

PetersTeam.java:1: error: package org.gamelink.game does not exist
import org.gamelink.game.Cram;
                    ^
PetersTeam.java:2: error: package org.gamelink.game does not exist
import org.gamelink.game.Algo;
                    ^

更新: 与jar tvf testjar.jar命令我只得到:

     0 Tue Jul 14 11:17:46 EDT 2015 META-INF/
    68 Tue Jul 14 11:17:46 EDT 2015 META-INF/MANIFEST.MF

所以我假设我在这里制作jar时做错了是我用的命令,它有什么问题吗?

jar -cvf testjar.jar *.class

2 个答案:

答案 0 :(得分:1)

听起来问题在于你创建jar文件的方式 - 假设你是在你应该使用的类层次结构的根目录(你应该)使用它:

jar -cvf testjar.jar org/gamelink/game/*.class

...因为在您运行jar的目录中不应该任何类苍蝇。

答案 1 :(得分:0)

我在我的应用程序中遇到了这个问题。当我尝试编译 .java 文件时。回答 - 我的 .java 文件与我的项目中的其他类有很多依赖关系,我必须 - 首先编译其他类,然后 - 开始编译我的目标文件(类)