除了 64 位版本之外,我还可以安装 32 位 Java 吗?

Paŭ*_*ann 14 64-bit java 32-bit 11.10

对于正常开发,我使用的是 64 位虚拟机,当我使用包管理器安装 Java 开发工具包 (OpenJDK) 时,它就会出现。

但是有一些 Java 应用程序(我想包含本机库)不能在 64 位 Java VM 上运行。(看起来SoapUI是这样的候选者 - 在 4.0.1 和 4.5 beta 1 版本中,如果在 64 位 VM 中运行,它会因分段错误而失败。)

除了 64 位版本之外,我还尝试安装 i386 版本的 openjdk-6-jre,但被 aptitude 拒绝(说它与现有的 64 位版本冲突)。如果我尝试在 32 位版本中安装 openjdk-jre-7,也会发生同样的情况。

Can I run a Java 32-bit application on a 64bit system的回答建议安装ia32-sun-java6-bin,但没有具有此名称的包(或任何带有ia32Java 的包)。

在不将整个系统 Java 安装切换到 32 位的情况下,我可以在这里做什么来运行 SoapUI?

dje*_*kyb 4

安装多个版本的 Java 非常容易。有点困难(读作:乏味)的是随心所欲地在版本之间切换。

总览

  1. apt-get 一个
  2. 解压另一个
  3. 导出路径取决于您想要的路径

apt-get 一个版本

决定您主要使用哪个版本。或者决定您想要自动更新哪一个。或者抛硬币,无论如何。你甚至不必使用apt-get; 只需手动维护系统上的这两个软件包(请参阅下一个标题)。

要点是:使用 Ubuntu 的包管理器来维护像 java 这样的包的一个版本会更容易。你会处理剩下的事情。

解压另一个

下载 jdk 压缩包。将其提取到/opt.

在它们之间切换

我让包管理器处理我的主要安装。当我需要时,我会为另一个变量导出一些变量。我经常在命令行上工作,所以这对我来说是一个不错的解决方案。我烦恼的是:

export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

另外,我符号链接jdk/->jdk1.6.0_3/因为我很懒,不喜欢在每次增量 jdk 升级时重新配置我的 .bashrc 和其他脚本。

您可能关心的环境变量:

JAVA_LIBDIR
JNI_LIBDIR
JAVAJNI_LIBDIR
JVM_ROOT
JAVA_HOME
PATH
Run Code Online (Sandbox Code Playgroud)


Rin*_*ail 2

安装

\n\n

首先,从 Sun下载最新的 32 位 JDK(不是 JRE)。当时对我来说这是 jdk-6u7-linux-i586.bin 。

\n\n

安装java包:

\n\n
sudo apt-get install java-package \n
Run Code Online (Sandbox Code Playgroud)\n\n

现在使用 java-package 从您下载的二进制文件构建 .deb 包。你必须欺骗它构建 32 位包:

\n\n
DEB_BUILD_GNU_TYPE=i486-linux-gnu DEB_BUILD_ARCH=i386 fakeroot make-jpkg jdk-6u7-linux-i586.bin \n
Run Code Online (Sandbox Code Playgroud)\n\n

这应该生成一个 .deb 包。由于某种原因,包名称带有 _amd64 后缀。安装包:

\n\n
sudo dpkg -i sun-j2sdk1.6_1.6.0+update7_amd64.deb \n
Run Code Online (Sandbox Code Playgroud)\n\n

使用 update-alternatives 选择新的 JDK。它安装在 /usr/lib/j2sdk1.6-sun 。

\n\n
sudo update-alternatives --config java \n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您运行 java -version 您应该看到正确的版本:

\n\n
java version "1.6.0_07"\nJava(TM) SE Runtime Environment (build 1.6.0_07-b06)\nJava HotSpot(TM) Server VM (build 10.0-b23, mixed mode)\n
Run Code Online (Sandbox Code Playgroud)\n\n

32 位日食

\n\n

我必须重新安装 32 位版本的 Eclipse(因为 SWT 包含本机代码)。我还必须删除 ~/.eclipse 目录,否则 Eclipse 将\xe2\x80\x99t 启动(这需要重新安装任何插件的新版本)。最后,使用安装位置 (/usr/lib/j2sdk1.6-sun) 在 Java->Installed JREs 中添加新的 JRE,并将其选择为默认值。

\n\n

参考

\n