【问题标题】:what is java installation structure in linux?linux中的java安装结构是什么?
【发布时间】:2014-08-10 01:45:16
【问题描述】:

当我运行命令 which java 得到输出 /usr/bin/java

当我运行 ll /usr/bin/java 得到输出 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

在 /usr/lib/ 中,我发现了以下 4kb 大小的文件夹,这些文件夹是什么?

java-1.5.0-gcj-1.5.0.0
java-1.7.0-openjdk-1.7.0.51.x86_64
jre -> /etc/alternatives/jre
jre-1.5.0 -> /etc/alternatives/jre_1.5.0
jre-1.5.0-gcj -> java-1.5.0-gcj-1.5.0.0/jre
jre-1.7.0 -> /etc/alternatives/jre_1.7.0
jre-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.51.x86_64/jre
jre-gcj -> /etc/alternatives/jre_gcj
jre-openjdk -> /etc/alternatives/jre_openjdk

在 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin 我发现 java 是那个 java 文件吗? 当我想设置 java_home 时我应该使用哪个路径? netweem jdk 和这些 jvm 文件夹有什么区别?

【问题讨论】:

  • 你能检查/usr/bin/java是否是/usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java的符号链接吗?我想我的意思是通常的ls -l
  • 是的,这是到 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/ 和 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/ 的符号链接到 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.51.x86_64/jre/ 的符号链接,正如您在问题中看到的那样......那么这些都是什么......为什么我不能简单/ home/jdk1.7/bin 文件夹,这样我就可以轻松设置 java_home ..
  • 为什么还需要一个特定的 java 主文件夹?
  • @Eypros 一些工具依赖于正确设置的$JAVA_HOME,例如maven、gradle、ant。
  • @Eypros 你只需要在命令行使用 java 时设置$JAVA_HOME。将JDK安装到eclipse中相当于设置JAVA_HOME var。

标签: java linux


【解决方案1】:

JDK 包含其他工具,如 JavaDoc、JavaDB、Javac 等,而 JRE 仅包含运行 Java 程序所需的工具(我认为是 JRE)。

Linux 系统支持多个已安装的 Java 版本,您可以使用update-alternatives 程序在它们之间切换。我不推荐 Java 发行版的 gcj 版本,Sun (Oracle) Java 版本的问题可能最少。

【讨论】:

  • 所以当我想在 hadoop 或其他一些工具中设置为 java_home 时,我应该使用这些 jre 或下载单独的 JDK 1.7 哪个包
  • @sandy_ws:这取决于您想要实现的目标。如果将JAVA_HOME设置为/usr/lib/jre-1.7.0,则可以使用update-alternatives切换Java版本。如果您想使用特定版本,将JAVA_HOME 设置为特定Java 版本可能更有意义。但是,当您安装新版本的 Java 时,这将中断。打包系统会告诉update-alternatives 新版本,但它不会尝试找出您设置JAVA_HOME 的所有位置。
  • 通常 JDK 是一个安全的选择。例如如果你想使用tools.jar的程序(例如脚本),最好使用JDK。如果它仅与 JRE 一起使用,那么您选择哪个并不重要。
猜你喜欢
  • 2018-08-11
  • 2013-11-14
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 2015-09-07
相关资源
最近更新 更多