我写了一个Test类,它的第一行是package rr;
我用javac -d . Test.java 编译它,编译后生成了rr文件夹,里面有Test类文件,我在rr所在的目录里写了另一个类Test1,这个类使用了Test这个类,它的第一行是import rr.*;但是编译却通不过,
Test1.java:7: 无法访问 Test
错误的类文件: .\Test.class
类文件包含错误的类: rr.Test
请删除该文件或确保该文件位于正确的类路径子目录中。
Test t = new Test();
^
1 错误
我用javac -d . Test.java 编译它,编译后生成了rr文件夹,里面有Test类文件,我在rr所在的目录里写了另一个类Test1,这个类使用了Test这个类,它的第一行是import rr.*;但是编译却通不过,
Test1.java:7: 无法访问 Test
错误的类文件: .\Test.class
类文件包含错误的类: rr.Test
请删除该文件或确保该文件位于正确的类路径子目录中。
Test t = new Test();
^
1 错误
这样就ok了
谁说我使用同一个包中的类,Test是rr包中的类,Test1可不属于rr包
这样,编译器就会在rr/rr/目录下找Test.java,而不是rr目录下,所以提示找不到Test.java
你如果非要使用导入语句,那么请把Test1.java放到和rr同一个目录下,只有即可以找到!
class Test(){
}编译
d:\demo\javac -d . Test.java此时Test.class在 d:\demo\rr\Test.class d:\demo\rr 中新建一个类Test1.javapackage rr;
//import rr.*;
class Test1(){
public static void main(String[] args){
System.out.println ( new Test()); //这里用到了rr包中的Test类
}
}编译
d:\demo\set classpath=d:\dmeo;.
d:\demo\javac Test1.java执行Test1
d:\demo\java rr.Test1
如果Test源文件在rr包里,Test1与rr同级的话,用import rr.*导入是没有问题的,还要注意包权限
package rr;
public class Test{
}
2.D:\lingxiao\daima>javac -d . Test.java
3.D:\lingxiao\daima\rr>notepad Test1.java
import rr.*;
public class Test1{
public static void main(String[] args)
{
Test t=new Test();
}
}
4.我把这个Test类打包,方便使用。
D:\lingxiao\daima>jar cvf abc.jar .\rr
然后在daima目录下可以看见abc.jar。
我把abc.jar放在c盘下新建的一个lib文件下。
然后设置classpath的环境变量,在classpath环境变量
里加c:\lib\abc.jar (注意环境变量加abc.jar,因为这个类在.jar包里)。
5。删除rr文件下的Test.class(如果你有)。
6。D:\lingxiao\daima\rr>javac Test1.java
7。OK。
你试试,我这样做是行的。
我是新手,慢慢做的很麻烦,
有高手也可以指点下其他方法。
Test1.java:7: 无法访问 Test "
此时执行java Test1肯定没有办法使用到Test类,java默认是从当前路径下面开始找rr/test.class,(与import无关),关键是classpath找不到路径
因此lz在执行的时候应当java -cp .;d:/rr Test1应该可以了,告诉java虚拟机你的class文件从哪里找,import中的与c中的include不是同一个意思。关键是要用告诉java执行从哪里找到你的class文件
../Test1.java
楼主是这样的吗?如果是的话找不到 Test
就说明 classpath 没配置好
set classpath=.;%classpath%
..//rr/Test1.java
你刚刚理解反了.
看题目.
哦,了解了
你的是
../rr/Test.class
../Test.java
../rr/Test1.java是这样子吧这样子的话你在 Test1.java中根本就不用
import rr.Test;
呵呵
..//rr/Test1.java既然Test1.java在rr目录下
你还import 什么啊?
import 了的话就会找../rr/rr/目录下的Test.class文件
了啦吧?
如:
.../rr/Test.java
.../Test1.java
注意:上面两个...是同一个文件夹。。