Java和Eclipse - 32位 vs. 64位

19

我对Eclipse的32位和64位两个不同版本有点困惑。

据我所知,Java字节码(=您的代码构建)是跨平台的。如果用户在32位JRE中运行您的字节码,则该代码将作为32位进程执行,如果用户在64位JRE中运行您的字节码,则该代码将作为64位进程执行。

Eclipse需要JRE来运行,因为它是用Java编写的。但是,如果只有用户的JRE版本重要,为什么Eclipse下载页面上会有32位和64位版本呢?

64位的Eclipse版本是否需要64位的JRE或JDK?如果是这样,为什么?


第二个困惑:我理解需要32位和64位版本的JRE。但是如果生成的字节码是平台无关的,为什么还需要32位和64位版本的JDK?

谢谢

2个回答

8

Eclipse依赖于SWT,它基本上是本地代码。在64位版本中将存在相当多的DLL等文件(在插件或特征目录中),这些文件与32位版本大不相同。


谢谢。所以你需要根据你机器上安装的JRE版本下载相应的Eclipse版本,对吗? - alapeno
1
是的,那是正确的。JRE 再次是一个系统相关的,所以一切都取决于您使用的 JRE。 - Rahul Borkar

7

这并不是由于运行环境的问题,而是因为Eclipse使用了一些本地资源,并且必须在相应的JDK上运行。您在Eclipse中开发的应用程序可以在任何已安装的JRE上运行,只需在设置中指定即可。

JDK不仅是编译器,还包含许多其他内容。其中许多是本地应用程序,需要在相应的平台上运行。


谢谢,但我不明白。如果你不使用Eclipse开发Java应用程序(例如使用C++),那么根本不需要安装JDK。那么为什么你说这不是关于JRE而是关于JDK呢? - alapeno
为了运行字节码,您只需要安装正确的JRE。但是要生成字节码,您需要调用编译器,它是JDK中的本地应用程序。JDK中还有更多本地应用程序,例如JNI的头文件生成器、Javadoc生成器等。 - Jakub Zaverka
如果您安装了一个集成开发环境(IDE),它会自动为您调用这些应用程序。如果您没有安装,那么您必须手动调用它们。 - Jakub Zaverka
谢谢。总之,Eclipse和JRE高度耦合,必须在32/64位方面完全相同。但是我可以使用64位的Eclipse和32位的JDK,反之亦然吗?我的意思是,IDE和编译器松散耦合,不是吗? 另一个故事:Eclipse默认使用自己的ECJ编译器,根本不依赖于JDK吗? - alapeno
@JakubZaverka 编译器不是本地应用程序,而是普通的Java程序。本地位是GUI组件。 - Thorbjørn Ravn Andersen
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接