我用package com.cn.tools 建立class ToolTest
当我建立另外一个类通过import com.cn.tool.*对ToolTest对象进行引用时
却无法运行,说找不到ToolTest文件所在,但改为import com.cn.tool.ToolTes却可以运行
这是什么问题?该如何解决?
请大家指教.
谢谢.
----------------解决方案--------------------------------------------------------
环境变量classpath设置为:
classpath=.;%java_home%\lib\dt.jar;%java_home%lib\tools.jar
注意".;"不能少!!!所以才出现你提出的问题。
----------------解决方案--------------------------------------------------------
你是不是导入错了啊!~
import com.cn.tools.*;不是 import com.cn.tool.*;
----------------解决方案--------------------------------------------------------
这是正常的。你把.java文件移到其他路径就OK了。因为类加载器查询路径时按照文件名进行查询。首先查询当前路径,然后当前路径加上包名。当你把.JAVA文件放到当前路径的时候,编译器发现.java文件中不包含类,所以出错。把ToolTest.java删除或者移到其他路径就没有问题了。LZ要学习下JAVA的类加载机制。
----------------解决方案--------------------------------------------------------
package com.linghou.tools;
public class P
{
public static void rint(String s){System.out.print(s);}
public static void rintln(String s){System.out.println(s);}
public static void rint(int i){System.out.print(i);}
public static void rintln(int i){System.out.println(i);}
public static void rint(double d){System.out.print(d);}
public static void rintln(double d){System.out.println(d);}
public static void rint(float f){System.out.print(f);}
public static void rintln(float f){System.out.println(f);}
public static void rint(boolean b){System.out.print(b);}
public static void rintln(boolean b){System.out.println(b);}
}
import com.linghou.tools.*;
public class ToolTest
{
public static void main(String[] args) {
P.rintln("Available from now on!");
P.rintln("" + 100);
P.rintln("" + 100L);
P.rintln("" + 3.14159);
P.rint(122);
P.rintln(true);
}
}
我用的原始UltralEdit加命令提示符进行的操作
当用import com.linghou.tools.P;时可以执行
但改为import com.linghou.tools.*;时却不能运行
ToolTest.java:5: 无法访问 P
错误的类文件: .\P.java
文件不包含类 P
请删除该文件或确保该文件位于正确的类路径子目录中。
P.rintln("Available from now on!");
^
1 错误
这个问题该如何解决?是CLASSPATH问题还是其他问题?CLASSPATH我设置为.
javac -d . P.java
javac ToolTest.java
还是上述命令符输入有问题?
小弟刚学JAVA没多久还请赐教.
在这谢谢了.
----------------解决方案--------------------------------------------------------
十分郁闷.
----------------解决方案--------------------------------------------------------
把p.java移除。
----------------解决方案--------------------------------------------------------
应该是把p.java移到其他路径。
----------------解决方案--------------------------------------------------------
在我的机子上运行你的程序根本没问题,以我的经验,可能有两种原因。
1:你的classpath配置有问题,看是不是在路径中丢了 " .; "分号中的东西。
2:如果你是用一般的编辑器编写程序时(如记事本),需要手动的建立包路径,一定要核对你手动建的包路径是否跟你在程序中定义的包路径一致,假如不一致就会出现问题!这也是很多初学者常遇到的问题.
一定要好好检查,也许一个小小的疏忽会导致你的程序不能运行!
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------