Java &引用;找不到符号“;错误-即使是在一个可笑的简单示例上

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

所以我一直在努力解决这个问题,已经有几个小时了。我搜索过互联网,我搜索过StackOverflow,我问过一些同事(我是实习生),老实说,没有人能告诉我到底发生了什么!我放了一个非常简单的例子来告诉你我在做什么(即使是简单的例子,我也会得到错误)

我有两个
.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
  • 在编译时指定
    -d.
    ,以强制javac构建包结构

使用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