当前位置: 代码迷 >> Java相关 >> 包建立问题
  详细解决方案

包建立问题

热度:35   发布时间:2007-10-24 15:55:41.0
包建立问题

我用package com.cn.tools 建立class ToolTest
当我建立另外一个类通过import com.cn.tool.*对ToolTest对象进行引用时
却无法运行,说找不到ToolTest文件所在,但改为import com.cn.tool.ToolTes却可以运行

这是什么问题?该如何解决?
请大家指教.
谢谢.

搜索更多相关的解决方案: 谢谢  package  import  如何  

----------------解决方案--------------------------------------------------------
环境变量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没多久还请赐教.

在这谢谢了.


----------------解决方案--------------------------------------------------------
回复:(天涯海角)环境变量classpath设置为:classpa...
我按照你给我的CLASSPATH进行配置了,可还是不行

十分郁闷.
----------------解决方案--------------------------------------------------------
把p.java移除。
----------------解决方案--------------------------------------------------------
应该是把p.java移到其他路径。
----------------解决方案--------------------------------------------------------
在我的机子上运行你的程序根本没问题,以我的经验,可能有两种原因。
1:你的classpath配置有问题,看是不是在路径中丢了 " .; "分号中的东西。
2:如果你是用一般的编辑器编写程序时(如记事本),需要手动的建立包路径,一定要核对你手动建的包路径是否跟你在程序中定义的包路径一致,假如不一致就会出现问题!这也是很多初学者常遇到的问题.
 一定要好好检查,也许一个小小的疏忽会导致你的程序不能运行!
----------------解决方案--------------------------------------------------------
回复:(灵猴)回复:(天涯海角)环境变量classpath设...
这不是classpath的问题。是加载器的问题。你把p.java从当前路径移出去就OK了。因为加载器首先找到的是p.java,而这个文件不是一个类文件所以会出错。或者你干脆删除了p.java,在运行就OK了。
----------------解决方案--------------------------------------------------------
  相关解决方案