Solaris jdk 7安装错误java -version No such file or directory

Solaris jdk 7安装错误java -version No such file or directory

我正在尝试跟随有关如何安装适用于 Solaris 10 的 jdk 的说明的网站,其中包含以下信息:

$ isainfo -v
64-bit amd64 applications
        ssse3 tscp sse3 sse2 sse fxsr mmx cmov amd_sysc cx8 tsc fpu
32-bit i386 applications
        ssse3 tscp sse3 sse2 sse fxsr mmx cmov sep cx8 tsc fpu

当我按照说明输入以下命令 java -version 时,出现错误。

$ java -version
bash: java: command not found

任何人都可以帮忙。谢谢

以下是我已采取的步骤

$ ls -l
total 14
drwxr-xr-x   6 root     bin          512 Sep 17 11:17 instances
lrwxrwxrwx   1 root     other          7 May 12 14:21 j2sdk1.4.2_34 -> ../j2se
lrwxrwxrwx   1 root     other         18 May 12 14:22 jdk1.5.0_32 -> instances/jdk1.5.0
lrwxrwxrwx   1 root     other         18 May 12 14:21 jdk1.6.0_37 -> instances/jdk1.6.0
lrwxrwxrwx   1 root     root          22 Sep 17 11:20 jdk1.7.0_67 -> instances/jdk1.7.0_67/
lrwxrwxrwx   1 root     root          11 Sep 18 09:42 latest -> jdk1.7.0_67
drwxr-xr-x   8 root     bin          512 May 12 15:04 packages
$ rm latest
$ ln -s instances/jdk1.7.0_67 jdk1.7.0_67
$ ln -s jdk1.7.0_67 latest
$
$ pwd
/usr/jdk
$
$ cd /usr/
$ ls -ld
drwxr-xr-x  43 root     sys         1024 Sep 18 09:45 .
$ ls -ld java
lrwxrwxrwx   1 root     root          10 Sep 18 09:43 java -> jdk/latest
$ pwd
/usr
$ rm java
$ ls -ld java
java: No such file or directory
$ ls -ld
drwxr-xr-x  43 root     sys         1024 Sep 18 10:24 .
$
$ ln -s jdk/latest java
$ java -version
bash: java: command not found

更新

$ echo $PATH
/usr/sbin:/usr/bin:/usr/java/bin:/usr/ant/apache-ant/bin:/u01/oracle/middleware/wlserver_10.3/common/bin:/opt/CollabNet_Subversion/bin


Error
    $ java -version
    bash: java: command not found

更新2 省略其他出口输出

$ PATH=$PATH:/usr/jdk/instances/jdk1.7.0_67/bin
$ export path
$ export
declare -x ANT_HOME="/usr/ant/apache-ant"
declare -x HOME="/"
declare -x JAVA_HOME="/usr/java"
declare -x JAVA_OPTS="-Xms512m -Xmx1024m"
declare -x PATH="/usr/sbin:/usr/bin:/usr/java/bin:/usr/ant/apache-ant/bin:/u01/oracle/middleware/wlserver_10.3/common/bin:/opt/CollabNet_Subversion/bin:/usr/jdk/instances/jdk1.7.0_67/bin"
declare -x PWD="/usr/java/bin/amd64"
declare -x SHELL="/bin/bash"
declare -x TERM="xterm"
$ java -version
bash: java: command not found

答案1

这是对你问题的一个复杂的回答,因为我相信你正在创造东西方式比他们需要的更复杂。

我对您的安装有什么问题有一个很好的猜测:参考下面关于 Solaris 上的 64 位 Java 的要点,我猜您做错的是您已经仅有的安装了适用于 Solaris 的 64 位 Java 覆盖包。那是行不通的。

好吧,既然我引起了你的注意(:-)),请原谅我为什么我相信你都走在错误的道路上。

我不确定我是否会关注您提到的那个博客。根据我的经验,Solaris 本身可以启动一个 Java 进程(注册工具后台进程、Web 控制台、通用代理容器等等。确实没有什么重要的,但仍然如此),并且更改系统范围的 Java 可能是一个坏主意..或者至少它让您对每个应用程序的控制更少。简单地离开系统 Java 是一个简单得多方法,恕我直言。

以下是我对如何在 Solaris 上处理 Java 的高度评价的指南:

  • 一般:作为一名系统专业人员,切勿从 java.com。它适用于消费者/台式机。总是使用Oracle Tech Network 站点上的 Java(我仍然使用http://java.sun.com我确信该链接在未来 10 年内将继续有效:-))

  • 不要管系统范围的 Java。让它过自己的生活。

  • 将 Java 包解压到/opt/java/apps/java或其他东西中。某处控制,这对你来说感觉很自然。JAVA_ROOT从现在开始我们就这样称呼吧。

  • 当您将这些包解压到java.sun.com其中时JAVA_ROOT,子目录最终将如下所示(示例):

jdk1.7.0_05
jdk1.7.0_09
jdk1.7.0_17
jdk7 -> jdk1.7.0_17
jre -> jre7
jre1.6.0_32
jre1.7.0_05
jre1.7.0_17
jre1.8.0_20
jre6 -> jre1.6.0_32
jre7 -> jre1.7.0_17
jre8 -> jre1.8.0_20
  • 请注意我如何使用符号链接。好吧,你明白了。

  • 当您启动应用程序时,您只需(在该应用程序启动时)将PATH指向您想要的 Java。有些应用程序还希望您设置一个JAVA_HOME变量。现在您可以根据每个应用程序进行控制。如果您在应用程序启动脚本中使用符号链接,您仍然可以在需要时保留一些系统范围的更改能力。如果您的应用程序需要特定版本的 Java,则让它指向特定版本而不是符号链接之一。

  • 关于 64 位系统的重要说明:在 Java 7 之前(包括 Java 7),您必须安装来自 java.sun.com 的软件包相互叠加,因为 64 位支持实际上作为 32 位软件包的覆盖软件包提供。这让大多数人感到困惑,因为它与所有其他操作系统不同。即使您不想使用 32 位 Java,您也首先需要放入 32 位 Java 包,然后用 64 位 Java 包覆盖它。幸运的是,这种情况在 Java 8 中发生了变化,因为 Oracle 不再为 Solaris 提供 32 位 Java。

该解决方案的明显缺点是您将错过使用 Java 软件包管理器的好处。我相信好处远远大于坏处。你自己判断吧。

即使在 Solaris 11(它有一个优秀的软件包管理器)上,我仍然喜欢这个解决方案。

答案2

PATH=$PATH:/usr/jdk/instances/jdk1.7.0_67/bin
export PATH

并再试一次。

答案3

在 Solaris 中,该java命令通常(但并非总是)指的是/usr/bin/java./usr/bin/java通常是已安装二进制文件的符号链接java

例如,在我的一个 Solaris 系统上:

dev:/ which java
/usr/bin/java
dev:/ ls -l /usr/bin/java
lrwxrwxrwx   1 root     other         16 Nov 19  2013 /usr/bin/java -> ../java/bin/java
dev:/

将其作为符号链接可以轻松安装另一个版本的 Java。只需更改/usr/bin/java新安装版本的java二进制文件的链接,它将使用新版本。如果您需要恢复到旧版本,可以非常快速地将符号链接更改回之前的值。

如果链接尚不存在,则设置该链接:

ln -s <path to java binary that you wish to use> /usr/bin/java

相关内容