Java代码在Eclipse中可以编译,但使用“javac”时无法编译。

3
我刚刚在Eclipse中编写了一个Java多线程程序。它编译得很好并且运行良好。
但是,由于这是一项课程作业,我们需要确保它能够使用'javac'在命令行中编译,否则我们就会得零分!
因此,有些类可以编译,而其他类则不能。我得到的错误消息如下(它们都很相似,只是类名不同,以下是一个例子)。
GateRunnable.java:7: cannot find symbol
symbol  : class Station
location: class package.name.here.GateRunnable
    public GateRunnable(Station st) {
                        ^

这是javac的问题吗?非常感谢您的帮助。


获取类路径正确。 - djechlin
你能否添加关于你的项目包/类结构以及你的javac命令是什么样子的信息? - Pshemo
在CMD中,我正在src文件夹中输入:javac GateRunnable.java,这给了我上面的错误,因此我正在尝试逐个编译类。 - Force444
3个回答

2
你的编译器选项 -classpath 和/或 -sourcepath 不完整。编译器不知道在哪里找到类 Station。这里有一个相关问题,描述了如何设置类路径以包含所有你想要的类。请参考这里

1
如果您有循环依赖(希望不是这样),您可以查看“sourcepath”选项。 - Andy
无法使其工作。我的当前目录在src文件夹中,其中包含所有的类。假设有四个名为Class1.java、Class2.java等等。您将如何设置类/源路径以包括它们所有?谢谢。 - Force444

2
为了解决我遇到的问题,只需要使用以下命令编译所有类:
javac *.java 

该命令编译目录中所有的Java文件。


0

你是否已经编译了文件夹/包中的每个 .java 文件?如果没有,那就编译一下吧。Eclipse 通常会为你完成这个过程,但在终端中,你需要自己负责编译代码的每个部分。


1
你需要先编译那些不依赖于你自己的Java类的.java文件,然后再编译其他文件。此外,如果你使用了任何第三方库,请不要忘记使用-classpath命令行选项设置类路径(http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/javac.html)。 - Pedro Boechat
不,只要它能找到依赖关系,javac 就会编译它们(我每天都在工作中使用 javac 来做这件事)。 - Lawrence Dol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接