1

我正在为 AP 计算机科学考试学习(临时补习)。其中一项要求是需要熟悉一个名为“GridWorld”的程序。在我的学习中,我一直在使用终端而不是 IDE 来运行和编译我的代码。在一个目录中,有一个必须编译的名为 BugRunner.java 的程序。这些类位于名为 gridworld.jar 的 .jar 文件中。Gridworld.jar 位于一个单独的目录中。如何配置 javac 编译器以使用这些类?我使用带有 bash shell 的 Mac。我试着打字

javac -cp .:/Users/raidenworley/programming/java/apcomp/GridWorldCode/projects/firstProject/gridworld.jar BugRunner.java

进入终端,但随后我收到以下信息:

BugRunner.java:17: package info.gridworld.actor does not exist
import info.gridworld.actor.ActorWorld;
                           ^
BugRunner.java:18: package info.gridworld.actor does not exist
import info.gridworld.actor.Bug;
                           ^
BugRunner.java:19: package info.gridworld.actor does not exist
import info.gridworld.actor.Rock;
                           ^
BugRunner.java:33: cannot find symbol
symbol  : class ActorWorld
location: class BugRunner
        ActorWorld world = new ActorWorld();
        ^
BugRunner.java:33: cannot find symbol
symbol  : class ActorWorld
location: class BugRunner
        ActorWorld world = new ActorWorld();
                               ^
BugRunner.java:34: cannot find symbol
symbol  : class Bug
location: class BugRunner
        world.add(new Bug());
                      ^
BugRunner.java:35: cannot find symbol
symbol  : class Rock
location: class BugRunner
        world.add(new Rock());
                      ^
7 errors
4

2 回答 2

2

您是否指的是 -cp 中的 jar,因为我没有看到它。

你可以通过导出你的类路径来做到这一点。

看看这里

在linux中添加类路径

正如您所提到的,您指的是包含 java 文件而不是 jar 的路径。

您应该能够在不调用物理 jar 的情况下引用包含 jar 的文件夹。我这样说只是为了确保它可用。无论如何,如果您希望导出类路径的高级方法。有用的 fir 自动 cron 调用等已阅读此内容我可以将变量从 bash 脚本导出到环境而不获取它吗?

于 2013-05-22T17:14:58.127 回答
0

我设法解决了它。我在终端中输入:

 javac -cp .:../../gridworld.jar BugRunner.java

然后使用

java -cp .:../../gridworld.jar BugRunner

我不明白出了什么问题,或者为什么会这样。

于 2013-05-22T17:26:48.290 回答