J2SE 入门小问题,大虾来帮忙解答下,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/29 23:32:39
代码如下:
//Study.java

package test;
public class Study
{
public Study()
{
System.out.println("study");
}
}

//HelloWorld.java
import test.Study;
public class HelloWorld
{
public static void main( String[] args )
{
System.out.println( "HelloWorld" );
new Study();
}
}

编译过程:进入.java文件的路径.
javac -d . Study.java (生成了一个test文件夹,里面有编译的class文件 )
javac -d . HelloWorld.java //编译通过;

java HelloWorld //执行没问题;

但是我一开始的时候,使用的是import test.*;这样导入的包...
结果编译HelloWorld的时候,提示如下

d:\Java\learn\test>javac -d . HelloWorld.java
HelloWorld.java:7: 无法访问 Study
错误的类文件: .\Study.java
文件不包含类 Study
请删除该文件或确保该文件位于正确的类路径子目录中。
new Study();
^
1 错误
我想搞清楚的是 :
为什么import test.*;这样报上面的错误,而 import test.Study;就没问题了呢.Study.class就是在test文件夹下呢!!?

楼上的看错了,Study是构造器,你干嘛给人家加一个void啊...

你的源文件应当这样放置:

test\Study.java
HelloWorld.java

不要有其他的文件。

然后编译的时候
javac test/Study.java
javac HelloWorld.java

运行的时候
java HelloWorld

-----------------------
补充的问题:
那是因为你的Study.java放错地方了,编译器先找到了Study.java还没找到test/Study.class的时候就出错了。把Study.java放到test目录下,或者把它删掉,只留下test/Study.class就不会报错了

package test;
public class Study
{
public void Study()
{
System.out.println("study");
}
}

//HelloWorld.java
import test.Study;
public class HelloWorld
{
public static void main( String[] args )
{
System.out.println( "HelloWorld");
new Study().Study();
}
}

我改了下,第一,你Study()的方法没有返回类型,第二,你没有指定方法。
主要就是new Study().Study();