1..为什么java程序,环境变量classpath中 tools.jar dt.jar是必须

1..为什么java程序,环境变量classpath中 tools.jar dt.jar是必须的,而没有其他的。

2..我用IDE比如Meclipes编译.java时要加载很多jar。系统的那个classpath好像是个摆设,为什么还需要它,配置它的意义是什么?

3..java程序运行时(注意不是编译时),需要动态加载jdk类库吗。如果需要,在哪里加载。

1:
dt.jar和tools.jar是两个java最基本的包,里面包含了从java最重要的lang包到各种高级功能如可视化的swing包,是java必不可少的。
rt.jar是JAVA基础类库,dt.jar是关于运行环境的类库,tools.jar是工具类库
设置在classpath里是为了让你 import *
这三个jar最基本也是最常用的,包含了大部分能用到的,如果你能非要用其他的,那么也要在这里面设置
2:
如果用IDE,那么就不需要设置classpath,设置path都不需要(eclipse需要配置eclipse.ini),java_home是虚设,在Windows-Preferences-Java-->Installed JRES,配置你的jdk目录,IDE会自动找到你项目的编辑命令和类库(path和classpath)

3:

class文件运行当然需要lib支持,可以最简单的

public class HelloWorld{
public static void main(String args[]){
System.out.print("Test File");
}
}
d:\>javac HelloWorld.java
d:\>
d:\>java -classpath ./junit.jar HelloWorld //重新指定类库
错误: 找不到或无法加载主类 HelloWorld
d:>追问

我在ide中编译时用到了rt.jar类库。然后把项目发布到tomcat服务器。 在接受客户端浏览器访问时,还需要rt.jar支持吗。如果需要这个rt.jar在哪。

追答

发布后,这个jar就在你工程的WEB-INF/classes/lib下啊

追问

lib里面没有jdk啊。?

追答

我刚才试了一下,lib里面的jar文件是有的,看图片,在这层目录上

有这些jar包

刚才说错了,是web-inf的lib目录

追问

感觉你的回答不全对

追答

有灵感是好的,但是要有实现灵感的例证,否则那就是空想,胡搅蛮缠

追问

是的。我已经想好了,只不过如果认为你完全正确的话,可能会误导其他人。不过这确实不是个重要的问题。

追答

怎么感觉有种开始讨论心理学的感觉......能解决你的问题就行了....
你想好什么了?
把正确答案在下面一留,等谁有同样的问题,不就可以看到你的正确答案了吗?

追问

嘿嘿。

我也不知道谁说的对,只能这样理解了。。tools.jar看作是 javac应用程序编译时提供支持。 dt.jar是swing环境支持。 而其他很多包比如rt.jar已经被包含到更底层的路径为java程序运行提供支持。不用开发者设置。而任何开发工具,编译器都会制定很多包作为编译支持,包括了上面的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-15
1.为什么java程序,环境变量classpath中 tools.jar dt.jar是必须的,而没有其他的。
-------》这是jdk的基础类库 必须要用的
2..我用IDE比如Meclipes编译.java时要加载很多jar。系统的那个classpath好像是个摆设,为什么还需要它,配置它的意义是什么?
-------》你eclipse里的jar 是支持你工程的 classpath是支持jdk编译你java文件编程class文件的 干的是两件事
3..java程序运行时(注意不是编译时),需要动态加载jdk类库吗。如果需要,在哪里加载。
-------》不是动态 你classpath不是配好了么追问

环境变量里的classpath就只有两条啊。我打开tomcat,运行web应用不就是用的这个classpath?。明显不对呀。

追答

支持java和tomcat的classpath配置 不是一回事
两个写法

java是配tools.jar dt.jar

tomcat是配tomcat/bin

追问

感觉你的回答不全对

追答

新兵蛋子懂什么
大哥都干10年了
做过工程无数
你这都不叫问题

追问

人越老越顽固。确实不叫问题。

本回答被网友采纳
第2个回答  2013-10-15
那是java自带的类的类库!!
你不把它们放到系统环境中,你怎么使用String类?怎么使用java.util.*等包?
所以,同理,如果你要在本机上面使用另外一个类包,同样可以放到classpath中
相似回答
大家正在搜