无法在Ubuntu上运行javac

Shu*_*huo 29 java ubuntu javac

我正在尝试在Ubuntu终端上运行javac.但我得到以下内容:

 $ javac
 The program 'javac' can be found in the following packages:
 * openjdk-6-jdk
 * ecj
 * gcj-4.4-jdk
 * gcj-4.6-jdk
 * gcj-4.5-jdk
 * openjdk-7-jdk
 Try: sudo apt-get install <selected package>
Run Code Online (Sandbox Code Playgroud)

jdk已经安装并正在运行sudo apt-get install openjdk-6-jdk0 upgraded, 0 newly installed, 0 to remove and 322 not upgraded.

我的jdk安装在/ usr/lib/jvm/java-6-open-jdk中; 我能够从eclipse编译并运行一个java程序.但是在使用终端时我遇到了这个前面提到的问题.

Asa*_*aph 25

javac二进制(可能其他的Java二进制文件)是/不是您的用户$PATH环境变量.有几种方法可以解决这个问题:

  1. 添加/usr/lib/jvm/java-6-open-jdk/bin到用户的$PATH环境变量中.您可以通过在用户中添加类似于以下内容的行来执行此操作.bash_profile:

    export PATH=${PATH}:/usr/lib/jvm/java-6-open-jdk/bin

    您必须重新启动终端会话才能使其生效.

  2. 从已经是路径一部分的某个目录创建指向java二进制文件的符号链接(例如/usr/bin)

    sudo ln -s /usr/lib/jvm/java-6-open-jdk/bin/java /usr/bin/
    sudo ln -s /usr/lib/jvm/java-6-open-jdk/bin/javac /usr/bin/

    BTW:还有其他几个java可执行文件/usr/lib/jvm/java-6-open-jdk/bin.我已经显示了符号链接命令javajavac以上.您应该为您可能想要使用的任何其他可执行文件运行类似的命令.

  3. 直接在命令行上使用完全限定的路径:

    $ /usr/lib/jvm/java-6-open-jdk/bin/javac

更新:

显然,有一个优雅,但Ubuntu特定的解决方案来解决这个问题.在Ubuntu系统上时,请使用update-java-alternatives.

  • 您可以只运行`update-java-alternatives`来选择所需的实现(java和javac可能不是您需要的唯一可执行文件),而不是手动创建符号链接. (2认同)