我在Linux中有两个文件,都在默认包AddSingleInstance.java
和Finder.java
我正在AddSingleInstance
中创建Finder
的实例:
AddSingleInstance ai = new AddSingleInstance();
当我编译Finder.java文件时,它会给出以下错误:
Finder.java:20: error: cannot find symbol
AddSingleInstance ai = new AddSingleInstance();
^
我正在从另一个目录编译。如何才能成功编译这两个文件?
答案 0 :(得分:1)
要解决您的问题,您的java文件应该在您的类路径中,以便javac知道在哪里找到它们。您可以手动设置类路径:
javac -classpath javadir javadir\Finder.java
java -cp javadir Finder
或使用.:$PATH
的默认类路径。最简单的方法是
cd javadir
javac Finder.java
java Finder
我想大多数人都不会遇到这个问题(我之前从未见过!)因为他们从默认包(源树的根目录)运行javac
。
答案 1 :(得分:0)
如果它们在同一个包中,则可以在Finder中访问AddSingleInstance,反之亦然。
但是如果它们在单独的包中,那么在Finder.java的顶部添加以下行(在包声明之后)
import packageName.AddSingleInstance;
答案 2 :(得分:0)
您的源文件可能正在使用Windows样式换行符。 尝试使用dos2unix程序修复换行符并尝试重新编译。我还必须看到完整的源文件以进一步帮助,我假设您在文件的顶部有导入。