String s = "abc"; }//test2.javapublic class test2 {
int a; test1 t1 = new test1(); } 这两个文件在同一个目录下的,怎么test2.java编译通不过 我要做个pakeage再做个程序来import这个包该怎么做,能不能给个例子,小弟有礼了
在编译test2.java之前要保证test1.java便宜成test.class假设你test1.java放在f:/youpakeage/test/下 //test1.java pakeage youpakeage.test; public class test1 { String s = "abc"; }//test2.java import youpakeage.test.*; public class test2 { int a; test1 t1 = new test1(); } 当然你要设置以下类路径
从1.2开始,sdk拒绝以"java."开始的包
你还是换个名字把
2.java文件的第一行加上package test;
不能加星号
最好自己起包名,否则碰到与标准类库同名的时候会有冲突
不明白你的环境变量f是什么意思
你加了包名后,其它class使用就要import,就像你最后写的那样import test.*;
String s = "abc";
}//test2.javapublic class test2 {
int a;
test1 t1 = new test1();
}
这两个文件在同一个目录下的,怎么test2.java编译通不过
我要做个pakeage再做个程序来import这个包该怎么做,能不能给个例子,小弟有礼了
//test1.java
pakeage youpakeage.test;
public class test1
{
String s = "abc";
}//test2.java
import youpakeage.test.*;
public class test2 {
int a;
test1 t1 = new test1();
}
当然你要设置以下类路径
但是java1.java已经编译好了 在编译test2.java时还出现了找不到包的错误
要按照你的package来建立相应的目录
如java1.java里的package是pakeage youpakeage.test
就要在你的test2.java文件所在的目录下建立youpakeage\test这样的目录
然后把java1.class(是编译后的class文件)放到test目录下
这样你的test2.java才能编译通过像这样多个class相互引用时,最好的方法是同时编译
编译时用如下命令:javac -d . *.java
-d是告诉编译器自动按包名建立相应目录
.是告诉目录建立在当前目录下,可以改成其它的目录
package test1;class test1 {
String s = "abc";
}import test1.*;
class test2 {
int a;
test1 t1 = new test1();
}指定目录不可能的。。在JAVA书写中不行的。。
//test1.java
package javatest.test;
import java.io.*;
public class test1 {
String s = "abc";
}
//test2.java
import javatest.test.*;
import java.io.*;
public class test2 {
String s2 = "abc";
test1 t1 = new test1();
}
我用javac -d c:\ test1.java把生成的包放在c盘根目录下,这是可以的,编译后生成了c:\javatest\test\test1.class
现在我编译test2.java是这样写的javac test2.java而且我在classpath中已经加入了c:\这个路径,编译时怎么报错,找不到test1.class,麻烦高手解决一下,谢谢!!!!
你用javac之前,先输入set classpath看看你的classpath里是否有C:\这个classpath
没有的话要重起cmd窗口的
编译通过了也不能运行的我刚才先javac -d c:\ test1.java编译你的test1.java
classpath我没改,我把test2.java拷贝到c:\下,编译可以通过
就是classpath = .; c:\sjh;或者 classpath = c:\sjh; .;就无法编译
但是如果不加 [ .; ] 当前路径的话我的同一个目录下的文件如果类A中有类B,编译了b以后却无法编译a除非 javac *.java,不能一个一个的编译,请问classpath应该如何书写
把import语句改成:import javatest.test.test1;
或者你调用test1的时候,这样调用:
javatest.test.test1 t1 = new javatest.test.test1();出这个问题的原因是:你的当前目录下,有以test1.java或test1.class文件,把这两个文件删掉就可以编译通过
不删的话,编译器寻找时,好像首先寻找的是当前目录,找到的第一个以test1为文件名的文件,就当做需要的文件来用,所以就会报错。