1 当他们都在一个目录下的时候可以直接调用a生成的对象的方法
2 如果不在一个目录下,那么需要把a.java打包,然后b.java可以通过import来引入a.java
2 如果不在一个目录下,那么需要把a.java打包,然后b.java可以通过import来引入a.java
解决方案 »
- java的栈和堆是在JVM里,还是在电脑的内存里?
- 怎样检测代码的运行时间?
- ZipOutputStream压缩文件乱码
- 用什么组件来显示多行静态文本?
- Crystal reports Designer for JBuilder2005 怎么使用!
- 中文输入法引起java虚拟机崩溃,有什么好的解决办法?
- 返回什么结果?
- 我想在JAVA里面计算lg的值,如何调用这个函数,请高手赐教
- tomcat?tomcat?
- Source not found的问题
- 一个类里的静态方法可以访问这个类里的变量吗?
- 如何在Linux(Red Hat Linux 7.2)下卸载JBuilder 6,重装??Linux系统字符集由中文更改为英文后,JBuilder支持的字体极少!!
a test1 = new a();
test1.method();
具体错误是什么?
can not resolve symbol
我写了好像也没有用,是不是 package XXXXX.XXX.a
然后在class b的代码最开头注明import 你刚才打的a的那个包就行了。
不知道,对不对?
然后 目录里的类 前面都加上 package t
类Hello和Log都是自己写的。
1)编写java文件
文件Hello.java
package Hello;
import Log.*;
public class Hello{
public static void main(String[] args){
System.out.println("hello");
Log log=new Log("hello");
log.printit();
}
}文件Log.javapackage Log;public class Log{
private String s;
public Log(String str){
s=str;
}
public void printit(){
System.out.println(s);
}
}
2)编写SetEnv1.bat
set JAVA_HOME=c:\j2sdk1.4.0
set PATH=c:\j2sdk1.4.0\bin3)编译Log.java并打包成Log.jar
md temp//临时目录存放Log.class
javac -d temp Log\*.java
cd temp
jar cvf Log.jar Log
cd..4)编写SetEnv2.batset JAVA_HOME=c:\j2sdk1.4.0
set PATH=c:\j2sdk1.4.0\bin
set CLASSPATH=.;C:\Hello\Lib\Log.jar5)编译Hello.java
md Classes//临时目录
javac -d Classes Hello\*.java 6)编写Run.batcd classes
java Hello.Hello
1)打包a.class 成a.jar
2) 将a.jar包含进路径CLASSPATH
3) 在b.java中通过import方式使用a.class
a source....将a的代码编译。
以下为b的代码:
package xxx.xxx.a;//与a代码中的包名字相同
import xxx.xxx.*;/**加入含有class a 的包,你可以使用此包中的任何类,也许你编译a时,生成了多个类文件*/
b source....这样行了吗?
联系我[email protected]
如果我在a.java文件中想调用java.lang.String类
而我又把a.java 文件中加上
package java.lang
会出现什么问题呢?
测试如下程序
package java.lang;
public class a{
public static void main(String[] args){
System.out.println("hello");
}
}
测试结果:
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.lang
at java.lang.ClassLoader.defineClass(ClassLoader.java:495)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
a source....将a的代码编译。
以下为b的代码:
package xxx.xxx.a;//与a代码中的包名字相同
import xxx.xxx.*;/**加入含有class a 的包,你可以使用此包中的任何类,也许你编译a时,生成了多个类文件*/
b source....这样行了吗?
==============================================
所以,《package xxx.xxx.a;//与a代码中的包名字相同》
是不正确的。