让Java JDK在ubuntu上编译

dan*_*ods 6 java linux

我正在尝试使用Java,但到目前为止还没能在我的机器上正确使用它.我真的希望能够从命令行编译.按照这里的说明没有错误我无法编译javac.这是我到目前为止所拥有的:

当我进入:

$ java -version
Run Code Online (Sandbox Code Playgroud)

我明白了:

java version "1.6.0_16"  
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)  
Java HotSpot(TM) Server VM (build 14.2-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)

当我跑:

$ sudo apt-get install sun-java6-jdk
Run Code Online (Sandbox Code Playgroud)

我明白了:

~$ sudo apt-get install sun-java6-jdk  
Reading package lists... Done  
Building dependency tree          
Reading state information... Done  
Suggested packages:  
  sun-java6-demo sun-java6-doc sun-java6-source  
The following NEW packages will be installed:  
  sun-java6-jdk  
0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded.  
Need to get 17.4MB of archives.  
After this operation, 55.7MB of additional disk space will be used.  
WARNING: The following packages cannot be authenticated!  
  sun-java6-jdk  
Install these packages without verification [y/N]? y  
Err http://us.archive.ubuntu.com hardy-updates/multiverse sun-java6-jdk 6-07-3ubuntu2
404 Not Found [IP: 91.189.88.140 80]  
Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/multiverse/s/sun-java6/sun-java6-jdk_6-07-3ubuntu2_i386.deb  404 Not Found [IP: 91.189.88.140 80]  
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Run Code Online (Sandbox Code Playgroud)

当我跑:

$ /media/disk/School/java/hw1$ javac HelloWorldApp,java  </pre>
Run Code Online (Sandbox Code Playgroud)

我明白了:

The program 'javac' can be found in the following packages:  
 * java-gcj-compat-dev  
 * openjdk-6-jdk  
 * gcj-4.2  
 * kaffe  
 * ecj  
 * jikes-sun  
 * jikes-sablevm  
 * j2sdk1.4  
 * jikes-classpath  
 * jikes-gij  
 * gcj-4.1  
 * sun-java5-jdk  
 * jikes-kaffe  
 * sun-java6-jdk  
Try: sudo apt-get install <selected package>  
bash: javac: command not found
Run Code Online (Sandbox Code Playgroud)

当我尝试更新(使用sudo apt-get update)时,我得到:

E: The method driver /usr/lib/apt/methods/https could not be found.
Run Code Online (Sandbox Code Playgroud)

还有其他人遇到过这个问题吗?提前致谢...

Mat*_*ert 6

您可以通过键入以下命令在最新版本的Ubuntu上安装JDK:

sudo apt-get install sun-java6-jdk
Run Code Online (Sandbox Code Playgroud)

您可能会发现这比尝试手动设置更容易.


Dav*_*vis 5

试试这个:

  1. 将Java SDK下载到$ HOME/archives(例如,$ HOME/archives/jdk-6u16-linux-x64.bin).
  2. 将Java解压缩到/ opt(如果您不想使用root,则将其解压缩到其他位置).例如:
cd /opt
chmod 755 $HOME/archives/jdk-6u16-linux-x64.bin
sudo $HOME/archives/jdk-6u16-linux-x64.bin</code>
Run Code Online (Sandbox Code Playgroud)
  1. 创建符号链接(以便于升级):
sudo ln -s jdk1.6.0_16 jdk
Run Code Online (Sandbox Code Playgroud)
  1. 编辑 $HOME/.bashrc
  2. 附加以下行:
JAVA_HOME=/opt/jdk
PATH=$PATH:$JAVA_HOME/bin
Run Code Online (Sandbox Code Playgroud)
  1. 重新加载环境变量:
source $HOME/.bashrc
Run Code Online (Sandbox Code Playgroud)

你现在应该能够编译程序了.

我更喜欢这种方法来安装托管包,因为卸载(或升级)似乎永远不会完全删除SDK的所有部分,并且它似乎阻碍了同时在同一台机器上安装多个版本的Java软件开发工具包.我过去遇到过apt-getJava 问题.此外,这种方法允许我绝对确定随时使用哪个版本的Java.

如果您不习惯使用root/opt,则可以使用自己的帐户$HOME/bin/jdk.相应地更改.bashrc文件.

删除以前安装的任何Java版本.您可能需要重新启动终端会话.

这适用于所有Java版本,至少从Java 1.2开始.