Java &引用;找不到符号“;错误-即使是在一个可笑的简单示例上
所以我一直在努力解决这个问题,已经有几个小时了。我搜索过互联网,我搜索过StackOverflow,我问过一些同事(我是实习生),老实说,没有人能告诉我到底发生了什么!我放了一个非常简单的例子来告诉你我在做什么(即使是简单的例子,我也会得到错误) 我有两个Java &引用;找不到符号“;错误-即使是在一个可笑的简单示例上,java,compilation,classpath,javac,symbols,Java,Compilation,Classpath,Javac,Symbols,所以我一直在努力解决这个问题,已经有几个小时了。我搜索过互联网,我搜索过StackOverflow,我问过一些同事(我是实习生),老实说,没有人能告诉我到底发生了什么!我放了一个非常简单的例子来告诉你我在做什么(即使是简单的例子,我也会得到错误) 我有两个.java文件。一个是Test.java,另一个是testClass.java //testClass.java package test; public class testClass { private int someMemb
.java
文件。一个是Test.java
,另一个是testClass.java
//testClass.java
package test;
public class testClass {
private int someMember=0;
public testClass(){
//kill me now
}
}
然后我有一个Test.java文件,其中包含我的main方法。(虽然在我真正的问题中,我没有main方法——它是一个带有doGet()
方法的servlet)
我使用以下命令进行编译(从windows命令行,使用保存.java文件的当前目录):
这非常好,我在当前目录中得到了一个testClass.class文件。一、 然后,尝试使用以下内容编译Test.java文件(同样在工作目录中):
这将导致以下错误:
Test.java:6: cannot find symbol
symbol : class testClass
location : class test.testClass
testClass myTest = new testClass();
你能帮个兄弟吗(您的类在一个包中,Java将查找假定该包结构的类-但除非您告诉javac,否则javac不会为您构建该结构;它通常会将类文件放在Java文件旁边 选项:
- 将源文件放在
目录中,编译test
和test\test.java
test\testClass.java
- 在编译时指定
,以强制javac构建包结构-d.
使用IDE(Eclipse、IntelliJ等)往往会鼓励甚至迫使您将文件放在正确的目录中,并且通常也会使构建代码变得更容易。我所做的正是您所做的
$ ls -la test/
drwxr-xr-x 6 amirraminfar staff 204 Jul 21 10:24 .
drwxr-xr-x 3 amirraminfar staff 102 Jul 21 10:23 ..
-rw-r--r-- 1 amirraminfar staff 148 Jul 21 10:24 Test.java
-rw-r--r-- 1 amirraminfar staff 140 Jul 21 10:24 testClass.java
然后编译
$ javac test/*
然后运行它。所有这些都起作用了。这告诉我问题在于编译的方式。你试过同时编译这两个类吗
$ java test.Test
编辑-正如Jon Skeet所说,我确实将所有文件都放在了
test/
目录中。也许这就是不同之处。最简单的修复方法:创建一个test
目录,并将放在那里。java
放在那里,将包含test
文件夹的文件夹添加到类路径中。如果你不知道怎么做,请不要将test
-文件夹放在java文件夹的子文件夹lib
(例如c:\prog\javasdk\lib)中。只需使用javac test.java
编译即可(testClass将自动编译),使用java test运行它。test
可以在任何地方运行。文件在名为test的文件夹中吗?该死,非常感谢。我的文件在正确的文件夹“test”中,但我是从该目录中编译的。我不知道编译必须从父目录中完成。doh!讨厌这些毫无意义的琐碎问题!
$ ls -la test/
drwxr-xr-x 6 amirraminfar staff 204 Jul 21 10:24 .
drwxr-xr-x 3 amirraminfar staff 102 Jul 21 10:23 ..
-rw-r--r-- 1 amirraminfar staff 148 Jul 21 10:24 Test.java
-rw-r--r-- 1 amirraminfar staff 140 Jul 21 10:24 testClass.java
$ javac test/*
$ java test.Test