自己整理了下java jdk相关东东
问题1:为什么要设置环境变量呢?
因为Java程序执行时有些方法它不知道在安装在那里,所以你如果在环境变量里设置了,程序就会到那里查找要执行的方法的路径。
问题2:各环境变量代表什么意义?
JAVA_HOME 指明JDK安装路径,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行 tomcat,eclipse等都需要依靠此变量)
Path 使得系统可以在任何路径下识别java命令.
CLASSPATH java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,要加.表示当前路径.
Path 使得系统可以在任何路径下识别java命令.
CLASSPATH java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,要加.表示当前路径.
问题3:如何设置?
Windows 系统 :
1.我的电脑-属性-高级-环境变量.
JAVA_HOME 新建,设为 d:\jdk1.5.0-04
Path (Windows中有已该变量,只需后面加)设为JDK安装目录的bin目录路径和bin目录下的jre文件 夹下的bin目录路径.最后Path为%path%;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
其中%path%;代表的是系统的环境变量(一般是%SystemRoot%\system32;%SystemRoot%;% SystemRoot%\System32\Wbem;)。
CLASSPATH .;%JAVA_HOME%\bin;%JAVA_HOME%\lib\tools.jar
1.我的电脑-属性-高级-环境变量.
JAVA_HOME 新建,设为 d:\jdk1.5.0-04
Path (Windows中有已该变量,只需后面加)设为JDK安装目录的bin目录路径和bin目录下的jre文件 夹下的bin目录路径.最后Path为%path%;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
其中%path%;代表的是系统的环境变量(一般是%SystemRoot%\system32;%SystemRoot%;% SystemRoot%\System32\Wbem;)。
CLASSPATH .;%JAVA_HOME%\bin;%JAVA_HOME%\lib\tools.jar
2.测试安装是否成功,cmd在安装目录下的bin之下键入java -version回车,如果显示出版本就说明安装成功(Path中设有系统环境变量%path%所以在任意目录下也可以键入java命令。
问题4:安装完jdk是不是还要装jre呢?
不是必须的,安装完jdk后其目录下已有一个jre目录,另外装的看似没什么作用的那个jre是公用jre,主要是为了开发好的java程序提供执行的平台。
假设jdk与公用jre各安装至的D:\jdk1.5.0-04和D:\jre1.5.0-04,你会看到,在jdk1.5.0-04目录下也有一个jre目录,只是jdk本身所附的jre,是在你开发java程序时做测试之用。它与公用jre的主要差别在于jdk本身所附的jre比公用jre多了个server的vm执行选项,通过对比查看D:\jdk1.5.0-04\jre\bin和D:\jre1.5.0-04\bin就可以了解。 server与client选项的差别在于所使用的vm不同,执行java程序时默认的是client VM。若使用server VM,会花比较长的启动时间及消耗较多的内存,为的是启动程序后可以获得较好的执行性能。
参考资料:Java深度历险
参考资料:Java深度历险
============================================================================================
关于ClassPath的总结:以下from 百度空间
关于ClassPath的总结:以下from 百度空间
1、在Java程序开发中,ClassPath是JVM寻找Java类的路径,也是java.exe执行解释时需要的类路径。
2、Java类的结构是:Package.class (或Package/class),所以,ClassPath设置的路径不能包括包名(在windows中也就是目录名)
3、如果你在包含类的当前目录下(不进入到包目录中)执行java.exe pakcage.class,那么不需要设置classpath,因为java.exe可以在默认当前目录寻找类并执行(当然,一个名为 a.b.class 的类首先必须放置到 ..\a\b\目录下才能被正确找到),但是如果你需要在任何目录下执行java.exe pakcage.class就必须设置classpath。
4、优先级问题:因为JDK5.0以上可以不设置classpath在当前目录下,按包名对应的目录寻找到需要执行的类,但是,如果我们同时也设定了环境变量classpath,而且当前路径下和classpath设定的路径下有同名的类,那么会执行哪一个?答案是:环境变量设置优先(也只执行先找到的那一个)。这有兼容性的考虑,因为jdk5.0之前,是必须设置classpath的,没有默认当前路径的特性。
5)对于一些公司把它们的一组类打成jar包发行,除了在设置classpath时用全名,在代码中需要使用jar中的class时,如何import呢?也很简单,以插件easyexplore.jar为例,先在classpath中设置:set classpath=%classpath%,L:\eclipse\plugins\easyexplore.jar。解开jar发现他的class是在如下目录中..\org\sf\easyexplore\,也就是说它的class的包名是org.sf.easyexplore,所以在代码中可以通过 import org.sf.easyexplore.*; 来使用他提供的类。如果不设置classpath,那么也可以将jar文件放在任何位置,只要在命令行也可以通过如下形式使用即可。
javac -classpath L:\eclipse\plugins\easyexplore.jar self.java
(self.java就是设置了import,需要使用jar中类的源程序,所以,jar可以放置于任何目录下。但前提是jar包必须在环境变量的classpath中指定或在命令行的-classpath参数中指定)
如果需要在eclipse中使用,则引入jar文件的流程如下:在工程项目的根目录点击右键查看属性(Properties),选择java build path的条目点击Libraries标签,点击"add External jar" 的按钮,选取你要载入的jar文件打开确定就可以了。
转载于:https://blog.51cto.com/dongdong1314/102650