我正在学习(填写)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
答案 0 :(得分:2)
你是指你的-cp中的jar,因为我没有看到它。
您可以通过导出类路径来完成此操作。
看看这里
正如您所提到的,您指的是包含java文件而不是jar的路径。
您应该能够在不调用物理jar的情况下引用包含jar的文件夹。我只是说这是为了确保它可用。无论如何,如果你想要出口类路径的高级方法。有用的fir auotmated cron调用等读取了这个Can I export a variable to the environment from a bash script without sourcing it?
答案 1 :(得分:0)
我设法解决了这个问题。我输入了终端:
javac -cp .:../../gridworld.jar BugRunner.java
然后使用
运行它java -cp .:../../gridworld.jar BugRunner
我不明白出了什么问题,或者为什么会这样。