2009-05-30 33 views
25

我已经看到许多产品与JDK捆绑在一起,我不知道是否有一种方法可以通过简单地将内容解压缩到目录来安装JDK,因此在添加/删除程序中没有创建图标,没有注册表项等。在Windows上手动安装Java?

同样在这种情况下: 我们如何配置浏览器的Java插件? 我们如何配置设置,如通过Java的控制面板条目看到的?

回答

14

是的,您可以创建一个压缩的JDK,将其解压缩到目标机器上,然后从该目录运行java,javac等。

创建这种zip文件的最简单方法是在一台机器上安装JDK,然后压缩JDK目录的内容。在某些情况下,我们需要精确控制部署中将使用的Java配置。在这种情况下,我们的脚本只是将JAVA_HOME(或等价物)指向我们内部捆绑的JDK,而不是依靠系统管理员在到达之前安装我们需要的东西。

就整合浏览器而言,这可能会有点问题。简短的答案是否定的,如果没有的一些安装程序,您无法直接与浏览器集成。

+0

正确。我从来没有任何问题只是复制JDK目录并设置JAVA_HOME。 – 2009-05-31 14:45:21

3

真的,不,至少如果你想从Windows而不是从cygwin使用它。 Windows依赖于注册表太多;您可以模拟必要的注册表更新,但将文件移动到正确位置并更新注册表的软件称为“安装程序”;你只是在重新创建安装程序。

3

我相信这至少在早期版本的Java中是可行的 - 我不知道它是否仍然存在。

大多数注册表项都用于浏览器插件等内容,正如您在问题中提到的那样。如果你只是希望能够运行Java(例如从一个批处理文件),这是一回事 - 但真的安装这是一个不同的问题。即使你只是想运行它,你也需要小心,始终明确地使用你打算使用的那个,而不是偶尔使用已安装的应用程序。

你的实际使用情况是?你真的需要一个浏览器插件吗?你对哪种配置感兴趣?很多控制面板配置都是为了更新和浏览器集成。使用命令行选项可以控制许多其他方面来设置特定的系统属性。

2

如果你只是想提供一个JVM与你的应用程序是好的,但比我不会推荐。

4

您可以使用SysInternals RegMon和FileMon(现在由MS拥有和分配)来查看究竟是 Java安装程序修改了哪些内容。我相信会有一些你想要创建的注册条目。例如,WISE安装程序等产品也使用这种方式来重新打包产品安装(例如MSI)。

因为也有安装程序做了一些动态决定,这可能会影响被安装什么(例如XP V.S. W2K3服务器上),请小心。关于安装的代码页,我被这一次咬了。我不记得确切的细节,但效果是我的嵌入式JRE + JDK(仅限法定可再发行部分)中缺少代码页文件。这在我的代码中造成了一个非常奇怪和看似无意义的运行时错误。不言而喻,这同样适用于Server v.s.客户端JVM DLL。

1

如果您只想拥有JDK(JRE)文件,则可以在sandboxie内运行安装程序。一旦安装在沙箱中,只需复制c:\sandbox中的文件即可完成。

我正在使用它来编译和运行遗留的java应用程序,这些应用程序无法轻松迁移到较新版本的java。我可以将Eclispe指向这个JDK,并告诉它符合Java 1.3。

1

只需从Oracle下载页面下载Java服务器的Windows服务器版本即可。自行设置JAVA_HOME和PATH变量。

29

根据this,我创建了一个batch script来自动构建jdk归档。

链接的主要部件:

  • 创建工作JDK目录:从Oracle( “C:\ JDK” 在这种情况下)
  • 下载最新版本的JDK(例如“JDK “)
  • 下载并安装7-zip(如果您不是管理员,请下载7-zip便携版)
  • 使用7-zip将”jdk- [6 -7] u?-windows-i586.exe“在目录”C:\ JDK“中
  • 在命令壳(cmd.exe的)执行以下操作:
    1. 改变目录的目录C:\ JDK.rsrc \ JAVA_CAB10
    2. 执行命令:extrac32 111
  • 解压C: \ JDK.rsrc \ JAVA_CAB10 \ tools.zip 7-拉链
  • 在命令壳(cmd.exe的)执行以下操作:
    1. 变化直接ory to C:\ JDK.rsrc \ JAVA_CAB10 \ tools \
    2. 执行命令:for/r%x in(* .pack)do。\ bin \ unpack200 -r“%x”“%〜dx%〜px %〜nx.jar“(这将所有包文件转换成JAR)
  • 复制整个目录和C的所有子目录:\ JDK.rsrc \ JAVA_CAB10 \工具”,你希望你的JDK是和设置手动将JAVA_HOME和PATH指向您的JDK目录及其BIN子目录。