我在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
答案 0 :(得分:1)
听起来问题在于你创建jar文件的方式 - 假设你是在你应该使用的类层次结构的根目录(你应该)使用它:
jar -cvf testjar.jar org/gamelink/game/*.class
...因为在您运行jar
的目录中不应该任何类苍蝇。
答案 1 :(得分:0)
我在我的应用程序中遇到了这个问题。当我尝试编译 .java 文件时。回答 - 我的 .java 文件与我的项目中的其他类有很多依赖关系,我必须 - 首先编译其他类,然后 - 开始编译我的目标文件(类)