更多关于Java can';在同一目录中找不到.class中的符号

更多关于Java can';在同一目录中找不到.class中的符号,java,compiler-errors,javac,identifier,Java,Compiler Errors,Javac,Identifier,我定义了两个java文件:Phone2.java和TestPhone2.java。java编译得很好,并被放在名为classes的包中。TestPhone2应该创建Phone2的一个实例,但我无法编译TestPhone2.java。以下是我的目录结构: 这两个java文件位于此处-- Phone2.class位于软件包classes-- 我的classpath设置为c:\myJavaProject java文件包含一些来自Mala Gupta的简单代码,用于测试实例和局部变量。代码如下: p

我定义了两个java文件:Phone2.java和TestPhone2.java。java编译得很好,并被放在名为classes的包中。TestPhone2应该创建Phone2的一个实例,但我无法编译TestPhone2.java。以下是我的目录结构:

这两个java文件位于此处--

Phone2.class位于软件包
classes
--

我的
classpath
设置为c:\myJavaProject

java文件包含一些来自Mala Gupta的简单代码,用于测试实例和局部变量。代码如下:

package classes;
class Phone2 {
    String phoneNumber = "123456789";
    void setNumber () {
        String phoneNumber;
        phoneNumber = "987654321";
    }
}


package classes;
class TestPhone2 {
    public static void main (String[] args) {
        Phone2 p1 = new Phone2();
        p1.setNumber();
        System.out.println(p1.phoneNumber);
    }
}
我不清楚为什么TestPhone2.java无法编译。我回顾了一些关于这类错误的stackoverflow帖子(和),但这些帖子似乎并没有直接说明问题。其中一个帖子处理的是
静态
方法,另一个帖子处理的是
导入
语句引起的错误。我不认为我的包语句中有错误,因为我今天早些时候在帖子中使用了类似的包语句,没有问题

下面是我的准确击键


谢谢您的反馈。

您有一个软件包。因此,必须指定类路径。一种方法是使用包含顶级包的文件夹(
c:\myJavaProject\tint31\
),如

或者您可以像这样使用
-classpath

set CLASSPATH=c:\myJavaProject\tint31\
javac -d . TestPhone2.java
javac -d . -classpath c:\myJavaProject\tint31\ TestPhone2.java

虽然我尊重你希望通过在丛林中寻找自己的食物等方式(即手动处理类路径和构建问题)来“Rambo”你的开发之路,但我强烈建议使用IDE(即使用城里的麦当劳)工作得很有魅力!今天早些时候,在我的帖子中,Sotirios Delimanolis的评论中,他提到我不需要将
。\mobile
放在
类路径中,在本例中,该路径转换为
。\tint31
。现在我对正确的经验法则感到困惑。@sedeh抱歉。但是没有,你把手机换成了课堂。和
C:\myJavaProject
C:\myJavaProject\tint31
。Java包有效地映射到目录(或者存储为基于zip的归档文件中存储的目录,称为JAR、EAR和/或WAR)。我懂了。在本例中,我在目录结构中增加了一个级别。因此,我需要在目标文件夹之前包含级别。在这种情况下,我最多需要包含
。\tint31
。对吗?@sedeh,除非他们改变了这个词的意思,否则他们会像[一种]魅力一样工作。重要的是你理解它。