Fla*_*nix 4 linux java bash eclipse
今天我通过.sh从官方 Oracle 源下载文件并使用sudo sh filename.sh命令运行它来安装 Java EE 。
但是,我的 Linux Mint 机器中有多个版本的 Java,我在使用以下命令时可以访问这些版本sudo update-alternatives --config java:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-7-oracle/jre/bin/java 1074 auto mode
1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode
* 2 /usr/lib/jvm/java-7-oracle/jre/bin/java 1074 manual mode
Press enter to keep the current choice[*], or type selection number:
Run Code Online (Sandbox Code Playgroud)
当我使用java -version命令时,这就是我得到的:
$ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
Run Code Online (Sandbox Code Playgroud)
通过阅读所有这些输出,我从未发现任何提及任何“Java EE”版本的内容。所以我有一些问题需要澄清:
提前致谢,佩德罗。
Java EE 实际上是一堆.jar运行在 Java SE 之上的企业库(在文件中),通常在服务器中。所以java -version它本身只是说“SE”。它还说“服务器虚拟机”,它是为运行服务器而调整的;但它是 64 位 Linux 上所有东西的默认 VM。(您在启动时配置或覆盖 VM 选择。VM 不“知道它正在运行哪种类型”的应用程序,因此它不会为您选择。)
您链接的 Java EE 安装了 Glassfish 服务器;那个特定的包有它自己的 JDK —— 实际上是一个旧的。所以无论你把它放在哪里,如果你去glassfish3/jdk7目录运行bin/java -version,它会报告java version "1.7.0_10",而不是_45。请注意,“核心”运行时在jdk7/jre/lib/rt.jar
EE JAR 在glassfish3/glassfish/modules. 主要的名称以“javax”开头,因此您可以看到它们find . -name 'javax*.jar'
当您在 Glassfish 中运行应用程序时,它应该执行类路径魔术以使这些 JAR 可用。如果您使用的是 IDE,它应该执行类似的操作,以便您可以编译代码。如果您手动编程,则必须自己进行。
因此,要回答您的问题,不使用 SE 就没有“使用”EE。使用 EE 的唯一真正要求是将其 JAR 放在类路径上。Eclipse 应该有办法“指向 Glassfish”并让它找到一切。
在这种特殊情况下,您还应该删除旧的_10JDK。然后要么把你的现有_45放在它的位置glassfish3/jdk7; 或者对 PATH、JAVA_HOMEglassfish3/glassfish/config/asenv.conf等进行任何必要的更改以使其运行。您不想意外运行旧的 JDK。
您只需要了解 HotSpot,因为它是来自 Oracle 的 JVM。所以从现在开始所有使用java命令的程序$PATH都将使用Oracle的Java。您还应该javac调整update alternatives.