java中import*导入包报错;

在同一目录下有两个java文件,文件名分别为Test.java和T.java,内容如下:
//class T ,所在目录为F:\javaWorkPlace
package a.b.c;
public class T{
public T(){
System.out.println("T");
}
}
//class Test,所在目录为F:\javaWorkPlace
import a.b.c.*;
public class Test{
public static void main(String arg[]){
T t = new T();
}
}
此时Test.java无法通过编译

将import a.b.c*改为import a.b.c.T编译就通过,且结果如下:

最终文件目录结构如图:
还有,如果在T.java编译完成后,在此根目录下将T.java删除,则import a.b.c*又能编译通过

注:java文件编译后产生class文件,如果删除T.java   而没有删除T.class文件,则可以通过import


    你第一次编译所有文件时没有通过的原因可能是:先编译了Text.java,这时没有T.class文件所以报错。

    第二次编译通过原因:T.class文件存在所以能编译import

追问

请看我贴命令行的图,我是首先编译的 T.java文件,再编译的Test.java文件

追答

应该是编译器的原因吧。如果用ecplise编译应该可以.* ,用命令来编译毕竟不是功能很强大。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-30

你的环境变量中classpath要重新设定,在cmd命令框中输入以下命令后再做javac编译操作。

set classpath=c:\Study\Lesson3;%classpath%

而且你需要先要搞清楚package的概念,看你贴的代码中package是的根目录下是com,而你输入javac PackageTest.java这个命令时是在c:\Study\Lesson3这个路径下,说明你的PackageTest.java中声明语句:package com.yeahgenius.test与实际不吻合。

你有两种选择:

选择一:

1.删除PackageTest.java和ImportTest.java中 package com.yeahgenius.test这句申明,2.

输入set classpath=c:\Study\Lesson3;%classpath%;然后输入cd c:\Study\Lesson3进入根目录下

3、输入javac PackageTest.java

4、输入javac ImportTest.java

5、输入java ImportTest

选择二:

    输入mkdir com

    cd com

    mkdir yeahgenius

    cd yeahgenius

    mkdir test

    cd test

    copy c:\Study\Lesson3\PackageTest.java .

    copy c:\Study\Lesson3\ImportTest.java .

    set classpath=c:\Study\Lesson3;%classpath%

    javac PackageTest.java

    javac ImportTest.java

    java ImportTest

第2个回答  2015-11-06
你的图片呢?没有看到啊,如果导入包报错的话看一下是否是自己需要导入的包,包名有没有错误,如果包名没有错的话,那么对应的jar包是否已经导入到工程了呢?
还有一种情况,当Eclipse 的JDK与java文件编码的jdk不匹配时也会报错。
望采纳谢谢。
第3个回答  2015-01-29
当你实例化java.lang.xx.java 的时候,你要给定它的全路径,程序中可以出现同名的类,但为了区分它们,只要是你使用它们的时候,都必须给出全路径,这时候你也可以不用import。追问

我想知道为什么将import a.b.c.T改成import a.b.c.*就会报错,编译不通过

相似回答