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

这方面的内容总结如下:
在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这个目录,被编译的类会被放到这个目录中。

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;这样的才是有用的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值