sachin@sachin-Lenovo-G550:~$ java -version
java version “1.7.0_21″
OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-1ubuntu1)
OpenJDK Server VM (build 23.7-b01, mixed mode)
当我运行上述命令时,显示 Java 已安装在我的系统中,但当我要编译任何 Java 程序时,它会显示以下错误消息:
sachin@sachin-Lenovo-G550:~/programs$ javac abc.java
The program ‘javac’ can be found in the following packages:
* default-jdk
* ecj
* gcj-4.6-jdk
* gcj-4.7-jdk
* openjdk-7-jdk
* openjdk-6-jdk
Try: sudo apt-get install
请告诉我如何摆脱它并运行我的 Java 程序。
答案1
打开终端并运行:
sudo apt-get install openjdk-7-jdk
然后像以前一样使用以下命令编译 Java 程序:javac abc.java
。然后使用以下命令运行它:
java abc ## The name of the class to be called is abc NOT abc.class
您还可以在第一个命令中用 openjdk-6-jdk 代替 openjdk-7-jdk。在 Ubuntu 15.10 及更高版本中,您还可以在第一个命令中用 openjdk-8-jdk 代替 openjdk-7-jdk。在 Ubuntu 17.10 中,您还可以用 openjdk-9-jdk 代替。在 Ubuntu 17.10 及更高版本中,您还可以用 openjdk-11-jdk 代替。
在 Java 9 和 Java 9 中,Java 有一个内置的 shell,可以直接从终端运行 Java 代码块,而无需先编译 Java 代码,杰壳,定义于JEP 222. 要从终端类型启动 jshell jshell
。
$杰壳 | 欢迎使用 JShell -- 版本 11.0.7 | 如需介绍,请输入:/help intro jshell>
要退出 jshell ,请输入/exit
。
答案2
如果您希望安装 Oracle JDK,本文将逐步介绍如何安装 Oracle JDK 8: 在 Ubuntu 中安装最新的 Oracle JDK
步骤1: 从官方下载最新的JDK(jdk-Xuxx-linux-xXX.tar.gz)关联。
第2步: 打开终端(Ctrl + Alt + T)并输入以下命令。
sudo mkdir /usr/lib/jvm
步骤3: 输入以下命令来更改目录。
cd /usr/lib/jvm
步骤4: 使用此命令提取该目录中的 jdk-Xuxx-linux-xXX.tar.gz 文件。
sudo tar -xvzf ~/Downloads/jdk-8u45-linux-x64.tar.gz
步骤5: 输入以下命令打开环境变量文件。
sudo gedit /etc/environment
第 6 步: 在打开的文件中,将以下 bin 文件夹添加到现有的 PATH 变量中。
/usr/lib/jvm/jdk1.8.0_45/bin
/usr/lib/jvm/jdk1.8.0_45/db/bin
/usr/lib/jvm/jdk1.8.0_45/jre/bin
PATH 变量必须用分号分隔。请注意,安装的 JDK 版本是 1.8 update 45。根据您的 JDK 版本,路径可能会有所不同。在文件末尾添加以下环境变量。
J2SDKDIR="/usr/lib/jvm/jdk1.8.0_45"
J2REDIR="/usr/lib/jvm/jdk1.8.0_45/jre"
JAVA_HOME="/usr/lib/jvm/jdk1.8.0_45"
DERBY_HOME="/usr/lib/jvm/jdk1.8.0_45/db"
修改前的环境文件:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
修改后的环境文件:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1.8.0_45/bin:/usr/lib/jvm/jdk1.8.0_45/db/bin:/usr/lib/jvm/jdk1.8.0_45/jre/bin"
J2SDKDIR="/usr/lib/jvm/jdk1.8.0_45"
J2REDIR="/usr/lib/jvm/jdk1.8.0_45/jre"
JAVA_HOME="/usr/lib/jvm/jdk1.8.0_45"
DERBY_HOME="/usr/lib/jvm/jdk1.8.0_45/db"