您的位置:首页 > 编程语言 > Java开发

java类的带jar包编译,带package、import类的编译,自建jar包的环境变量配置

2016-09-05 10:25 218 查看
这方面的内容总结如下:
在java核心技术第八版卷1第四章里有这方面的详细说明。

(1)带jar包的类的编译:
1.可以用命令javac -cp *\*.jar ClassName.java
    
// *\*.jar代表你需要的jar的路径和名称,ClassName代表类名。
推荐使用这种方式。

2.可以把*\*.jar添加到环境变量里面如:CLASSPATH=.;C:\myJar\test.jar;
 
//C:\myJar\test.jar是*\*.jar的一个具体例子。
注意,并不是把C:\myJar添加到环境变量中,如果这样把jar所在的目录添加进去,你会发现编译器找不到所需的类。因为类的加载器不装载类路径下的jar文件中的类文件,而只是装载该目录下的未打包成jar的类,以及该目录下的子目录中未打包成jar的类。(本人亲测jdk1.5.0属于这种情况) 这种方式可以使用,如果你愿意的话。

3.可以把jar文件放到%JAVA_HOME%\jre\lib\ext\目录下面,这样什么都不用配置,但是这却是一个最坏的做法。
因为将来会出现更多的麻烦。

(2)带package、import类的编译:
1.直接在同一个目录下编译运行。
举例如下:
TestInt.java文件内容:
package
pp;  
public
class TestInt{  
//public
static int testInt=1;  
}

Test.java文件内容:

package pp;

import pp.TestInt;//此时不能用import pp.*;代替,如果TestInt被打包到jar中,且被添加到环境变量时才可以。  
public class Test{  
public static void main(String[] args){  
System.out.println(new TestInt());  
}  
}
  

javac -d . TestInt.java( -d和点的两边都有空格):-d的意思是编译到TestInt类被打包到的包(既是目录pp)内,而.的意思是把这个包放到当前目录中;所以目录java包的导入中将增加pp这个目录,被编译的类会被放到这个目
aa60
录中。

2.把TestInt类所在的包(既是目录pp)所在的目录(现在是目录java包的导入)添加到环境变量中,像:
CLASSPATH=.;E:\J2EE学习\java\javaTest\java包的导入;
这时,如果两个类不在同一个目录也可以编译和运行。

如果还有没有清楚的,可以看java核心技术第八版卷1第四章4.8类路径(在134页),这是一本很不错的书,不过也挺贵的。

顺便提一下CLASSPATH=.;%JAVA_HOME%\lib;这样的环境变量几乎是没有用的(只有在lib目录下有*\*.class文件时才会其作用),如果你仔细看以上的内容的话你应该明白,像:CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\lib\servlet-api.jar;这样的才是有用的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  添加jar包