更多关于Java can';在同一目录中找不到.class中的符号
我定义了两个java文件:Phone2.java和TestPhone2.java。java编译得很好,并被放在名为classes的包中。TestPhone2应该创建Phone2的一个实例,但我无法编译TestPhone2.java。以下是我的目录结构: 这两个java文件位于此处-- Phone2.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
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,除非他们改变了这个词的意思,否则他们会像[一种]魅力一样工作。重要的是你理解它。