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

Error compiling java with imported classes from a jar

我在 Linux 上编译我的 Java 源文件时遇到问题。我的源文件 (PetersTeam.java) 从存储在与源相同的文件位置的 jar 中导入 类。我收到错误消息,指出包含 类 的包不存在。我已经尝试了以下我在网上找到的命令的许多不同变体,但 none 似乎有效。任何帮助将不胜感激。

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

听起来问题出在您创建 jar 文件的方式上 - 假设您是在 class 层次结构的根目录下创建的(您应该这样做),您应该使用:

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

... 因为不应该 任何 class 飞进你所在的目录 运行 jar.

我的申请中遇到了这个问题。当我尝试编译 .java 文件时。答案 - 我的 .java 文件与我项目中的另一个 classes 有很多依赖关系,我必须 - 首先编译其他 classes,然后 - 开始编译我的目标文件(class)