日期:2014-05-20  浏览次数:20698 次

有关eclipse jdk jre 配置问题
下面我的叙述如果有错误,请大家帮我指出来!谢谢!


1.jre:java程序的运行环境,一般系统不特意安装也会带 在C:\Program Files\Java目录下,里面lib目录下包含了运行java程序时需要的库文件,我把它叫jre111。


2.jdk:针对Java程序开发者的工具集,主要用于编译java源代码,jdk的运行本身就需要jre的支持,所以安装jdk后在jdk目录下也会有个jre(专门用来支持jdk的),我把它叫jre222。



3.Eclipse本身带了编译java源代码的程序,所以只要有jre,Eclipse就可以正常编译,运行java程序。指定jre的方法是 窗口-首选项-已安装的jre ,这样就可以改变jre。



叙述到此为止

问题来了!

1. 如果要用eclipse开发java程序,我重新下载eclipse,jdk,jre(我叫它jre333),(jdk包含了jre,我觉得另下载一个jre安装会更好) 分别安装后,jre333应该会覆盖原来的jre111,用上面的方法把eclipse和jre333关联,那怎么把eclipse和jdk关联呢?也就是说不用eclipse自己带的编译器,用我刚安装jdk的。

2.编译java程序时会和lib下的库函数进行关联吗?如果关联是不是关联我jdk/lib下的库函数,而不是jre333/lib下的

3.如果上面得问题解决了,假设我现在程序编好了,现在要编译程序(也就是说用我刚安装的jdk中javac编译),编译时用的lib是jdk下的 ,而运行时用的是jre333下的lib,那关于lib的版本是怎么匹配的呢?如果jdk和jre333的lib不一致怎么办?


大家看懂我的问题了吗?如果看懂了 请帮我解答下,总有一个问题是你会的!!谢谢!



------解决方案--------------------
???不懂,糊涂了
------解决方案--------------------
太复杂了,糊涂了
------解决方案--------------------
用Eclipse编译程序 是用的Eclipse用的那个JDK 
而不是用command line里面打 java -version的那个JDK
当然 他们也可能是一个 但感觉你用了很多个
------解决方案--------------------
囧,您只装eclipse也能运行程序,这就是和你后装什么没关系的
------解决方案--------------------
1.首先不用关心java下面的lib,因为这个是java系统带的,只要配置好了就好.
2.其实你不用装那么多java,装一个就够了,都是一样的.
3.没有看见eclipse自带的java.当楼主用eclipse建立java项目后,楼主可以设置项目的环境,可以任意配置所需要使用的java所在目录.
4.关于开发和运行会用不同java环境的问题,java一般是向下兼容的,就是如果开发用低版本的,运行时用高版本是没有问题的.反过来就会报错,此时只需要用运行时的版本去编译一下就可以.当开发时需要注意所使用的java版本.不过在实际中这个不是问题.

楼主项目还是学习?
------解决方案--------------------
1.貌似要设置了环境变量JAVA_HOME才能启动Eclipse,设置JAVA_HOME就能关联Eclipse
2,3两个问题我不会,不过劝楼主也不要费神了。。。。
------解决方案--------------------

------解决方案--------------------
2.编译java程序时会和lib下的库函数进行关联吗?如果关联是不是关联我jdk/lib下的库函数,而不是jre333/lib下的

与lib库函数关联编译?LZ从C转行来的吧,C语言倒是不假,编译完了后有这个过程,叫做链接。java不是编译语言,而是解释语言。不存在这个说法。编译的时候编译器只对你的java代码进行语法及词法分析后生成字节码文件就是.class,编译完了就完了,不会再与类库“链接”,你的代码Import的类在运行的时候由JVM从你的ClassPath进行类加载,完成执行。以上两点是java跨平台的本质和依据。

C语言呢?编译完了后生产.o .obj等等中间文件,然后再与库函数.a .lib 链接生产exe/bin/等等可执行程序。




------解决方案--------------------
现在版本的JDK 和eclipse 不需要这么麻烦的配置