两个文件,其中一个文件名字是TestClass.java,代码如下:
package TestPack;
public class TestClass
{
public void testFunc()
{
System.out.println("This is TestClass");
}
}
另一个文件名字是test.java:代码如下:
import TestPack.TestClass;
class testPackage
{
void packageCheck()
{
new TestClass().testFunc();
}
}
以上这种写法编译可以通过,
为什么把import语句换成import TestPack.*;之后编译就通不过了?
package TestPack;
public class TestClass
{
public void testFunc()
{
System.out.println("This is TestClass");
}
}
另一个文件名字是test.java:代码如下:
import TestPack.TestClass;
class testPackage
{
void packageCheck()
{
new TestClass().testFunc();
}
}
以上这种写法编译可以通过,
为什么把import语句换成import TestPack.*;之后编译就通不过了?
解决方案 »
- 如何throw Exception ?
- Java可以实现类似WCF那种双工WebService吗
- 推荐学习路径
- Tomcat 注册成服务的时候 tomcat不能放在中文的文件夹下面 有没解决办法
- [求救.帮帮忙.]如何用多线程播放烟花?
- 如何用replaceAll 将"\\"转换为"/"???
- 怎样在Java中实现如编辑器左侧显示行号那样的功能?
- 有没有人使用javamail发过带认证的电子邮件啊!我等。。!
- Choice 控件 问题,在线等待
- 当Jtree.setEditable(true)后修改了节点的title,按回车,做些判断后怎么让修改失效,改回原来的title(gularess(无吃哪拉)再帮帮忙)
- 建立一个mypg目录 里面的方法怎么写?
- Swing编程,如何实现窗体的打开和关闭
错误的类文件:.\TestClass.java
文件不能包含类:TestClass
请删除给文件或确保该文件位于正确的类路径子目录中。
new TestClass().testFunc();
^
1 错误
应为:请删除该文件
上面的是用命令行编译的,
如果用jcreator编译,错误信息是:无法访问TestClass
放弃JC 用EC吧
还请LZ忍痛割爱
|-- test.java (源文件)
|-- TestPack (文件夹)
|-- TestClass.java (源文件)楼主问题的根源在于CLASSPATH的设置会影响javac的执行方式: 当你导入一个包中所有的类(import TestPack.*)时,javac在编译时并不确定你要使用的TestClass类是TestPack包中的类,还是其他包中的类,它会根据你机器上的CLASSPATH环境变量的值去查找类,通常我们在CLASSPATH中会设置一个点(.),表示当前目录,如果没有CLASSPATH环境变量,那么在JDK1.4之后,默认也是查找当前目录。javac在按照文件名(不包括后缀)来查找类,于是找到TestClass.java,而这个文件根本不是字节码文件,当然就报错了。当你导入一个具体的类时,javac在分析源文件时就知道了你程序中用的类是TestPack.TestClass,那么它就在CLASSPATH环境变量下查找TestPack目录下的TestClass类,正好有,于是正确执行。
错误的类文件:.\TestClass.java
文件不能包含类:TestClass
请删除给文件或确保该文件位于正确的类路径子目录中。
new TestClass().testFunc();
^
1 错误
-------------------------
将.\TestClass.java删除或者移动到其它的目录,程序又可以重新正确执行.
结贴,给分