让Java JDK在ubuntu上编译

时间:2009-09-03 04:35:17

标签: linux java

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

当我进入时:

$ java -version

我明白了:

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)

当我跑步时:

$ sudo apt-get install sun-java6-jdk

我明白了:

~$ 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?

当我跑步时:

$ /media/disk/School/java/hw1$ javac HelloWorldApp,java  </pre>

我明白了:

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

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

E: The method driver /usr/lib/apt/methods/https could not be found.

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

4 个答案:

答案 0 :(得分:6)

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

sudo apt-get install sun-java6-jdk

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

答案 1 :(得分:5)

试试这个:

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

          您现在应该可以编译程序了。

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

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

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

          至少从Java 1.2开始,它适用于所有Java版本。

答案 2 :(得分:2)

通常你会在PATH中找到java而不是标准的Ubuntu安装中的javac。这主要是因为安装了gcj包。还创建了可以使用 update-alternatives 脚本更新的符号链接。

安装Sun JDK后,您需要将符号链接更新为java,这通常通过类似下面的命令来完成

sudo update-alternatives --config java

如果没有(Sun)java位置的硬链接,您可以使用类似于

的命令创建它
sudo update-alternatives --install / usr / bin / java java /usr/lib/jvm/jdk1.6.0_07/jre/bin/java 300

对于javac,您可以使用以下命令再次使用update-alternatives创建符号链接:

sudo update-alternatives --install / usr / bin / javac javac /usr/lib/jvm/jdk1.6.0_07/bin/javac 300

这将使javac在PATH上可用,就像java。

当然,可以通过简单的导出或更改shell配置文件来更新PATH变量。

答案 3 :(得分:0)

我在安装http://validator.nu的html验证程序时遇到了这个问题。要安装sun-java6-jdk,我必须添加此存储库:deb http://archive.canonical.com/ lucid partner

要完成验证程序安装,我必须将$JAVA_HOME设置(导出)到/usr/lib/jvm/java6-sun

将“清晰”更改为适合您的Ubuntu版本的任何内容。