最近开始学习Java进行考试。
在学习软件包时,尝试了此操作并收到错误消息。我所做的是
//Creating class A (Within package the package: com.test.helpers)
package com.test.helpers;
public class A {
public void sayHello(){
System.out.println("Hello World");
}
}
//And then the class App utilizing the class A
import com.test.helpers.*;
public class App{
public static void main(String args[]){
A a = new A();
a.sayHello();
}
}
我将这两个文件都放在名为“ JavaTest”的目录中(在Windows 7中),
并首先使用命令
javac -d . A.java
编译A.java然后,在尝试编译App.java时,出现以下错误消息:
App.java:5: error: cannot access A
A a = new A();
^
bad source file: .\A.java
file does not contain class A
Please remove or make sure it appears in the correct subdirectory of the source path.
1 error
但是,该问题似乎可以通过两种方式解决:
删除源文件A.java
将导入语句从
import com.test.helpers.*;
更改为文件“ App.java”中的
import com.test.helpers.A
。如果您能解释一下这里发生的事情,我将不胜感激。或者我可能犯了一个愚蠢的人为错误或语法错误。
Here's the link to the source files
非常感谢你
最佳答案
将JavaTest文件夹下的A.java移至com / test / helpers。您看到的错误是针对编译器的,它抱怨A.java所在的文件夹与其程序包声明不匹配。请记住,没有A放在包中,就无法从App访问A。
从src driectory下运行以下命令来编译您的类
src> javac ./*.java ./com/test/helpers/*.java
然后从src文件夹下
src>java App
应该可以运行您的程序。