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;这样的才是有用的。
在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;这样的才是有用的。
相关文章推荐
- jdk 环境变量配置及用命令编译.java类
- java环境变量配置和批处理编译
- 配置maven下载jar包源码文件、拷贝依赖jar到lib包、设置编译时jdk版本、根据不同环境采用不同配置
- 初学JAVA环境变量配置以及编译程序和运行
- maven 安装jar 包到本地仓库,以及maven环境变量 配置
- ubuntu 下交叉编译环境的搭建及环境变量的配置
- vs2010 qt4.8.1 需要配置环境变量 否则编译不通过,qt类无法识别
- 在linux下安装Qt3并配置环境变量后,make编译报错
- java环境变量配置好后双击jar文件无法运行的解决办法
- 配置JAVA的环境变量及容易遇到的问题(丢失 dt.jar和tools.jar)
- java jdk安装 环境变量配置 cmd 命令行 编译java文件 运行.class文件 CLASSPATH配置
- cmd运行java类环境变量的配置
- Android 深入gradle环境变量配置和gradle插件版本,打成jar包
- VS .NET Framework csc.exe的编译环境变量设置(配置)
- 编译常用环境变量 No package 'xcb-proto' found
- Java学习总结(一)—— >Java环境变量的配置,DOS窗口的带包编译,Jdk1.5的两个新特性(可变参数和增强的for循环)
- 在win7下配置java编译环境变量
- java环境配置,命令行编译和生成jar包
- java环境变量配置,java小程序的编译运行规则