web-dev-qa-db-ja.com

Antはjavacを見つけることができず、Java_HOMEはUbuntuで設定されません

Android Ubuntu 10.04 i386サーバー(ヘッドレス)でHelloというプロジェクトがあります。これには、Androidプロジェクトフォルダーに必要なものがすべて含まれています。このsynaxを使用してProjectフォルダーでbashのプロジェクト:

./Android create project --target 5 --name HelloCompile --path ../../Projects/Hello --activity HelloActivity --package com.code.Hello

その後、私は次のようにantで.apkを構築しようとします:

ant debug

私はこのエラーを受け取ります:

BUILD FAILED
/home/myusername/www/sdk/tools/ant/main_rules.xml:384: Unable to find a javac compiler;
com.Sun.tools.javac.Main is not on the classpath.
Perhaps Java_HOME does not point to the JDK.
It is currently set to "/usr/lib/jvm/Java-6-openjdk/jre"

ant debugを実行する直前に次を実行するため、非常に混乱します。

export Java_HOME=/usr/lib/jvm/Java-6-openjdk

bashシェルのprintenvは以下を返すため、動作することがわかっています。

Java_HOME=/usr/lib/jvm/Java-6-openjdk

これをコンパウンドするには、この行を/ etc/environmentファイルに追加します

export Java_HOME=/usr/lib/jvm/Java-6-openjdk

問題も解決しません-私は同じエラーを受け取ります。 Ubunutがまだ/usr/lib/jvm/Java-6-openjdk/jreがJava_HOMEであると考える事実を変更することはありません。何が悪いのでしょうか?私はこれに長時間かかりすぎました。

44
lollercoaster

JDKをインストールしましたか?

Ubuntuをインストールすると、JREのみがデフォルトパッケージの一部としてインストールされます。残念ながら、Ubuntuのパッケージ管理では、JREがJDKとともにインストールされたかのようにディレクトリに名前が付けられます。ディレクトリの名前はJava-6-openjdk JDKが存在しない場合でも。

以下をせよ:

Sudo apt-get install openjdk-6-jdk

同じディレクトリにJDKがインストールされます。

77
Brian Roach

---出力内の小さなアイテムに気づいた後に更新---

_Java_HOME_をJava Runtime Environmentの正しい場所に設定しているため、Javaプログラム、しかしそれらを開発しない

_Java_HOME_を_/usr/lib/jvm/Java-6-openjdk_に短縮します(末尾のjreが削除されていることに注意してください)。その後、Antラッパー/コンパイラー検出コードは混乱せず、組み込みの関連するJava Runtime Environmentの代わりにJava Development Environmentのホームを指すようになります。 =。

組み込みのJava Runtime Environmentは、コア(コンパイラツールは含まれていません)のみに対してテストできることを確認するために提供されていますJavaオファリング。

---元の投稿が続きます---

コマンドjavacの検索は、javacが通常_Java_HOME_の下のサブディレクトリにあることを超えて、_Java_HOME_とはほとんど関係ありません。

あなたがする必要があるのは、環境変数PATHを修正して、Java実行可能ファイルが置かれているディレクトリ。

_PATH=${PATH}:${Java_HOME}/bin
export PATH
_

ただし、設定によって若干異なる場合があります。もしあなたがそうするなら

_ls ${Java_HOME}/bin
_

javac実行可能ファイルが表示される場合、上記のパス変数の変更は変更することなく機能します。

10
Edwin Buck

Edwin Buckが述べたように、/ usr/bin /ディレクトリーで/ etc/alternatives/Javaへのソフトリンクの$ PATHを確認してください。追加されたJava_HOME変数の前に読み込まれます。

それが私の問題でした:

ls -al /usr/bin/j* 
lrwxrwxrwx 1 root root    22 2012-05-07 13:26 /usr/bin/Java -> /etc/alternatives/Java
lrwxrwxrwx 1 root root    25 2011-05-12 19:45 /usr/bin/Java_vm -> /etc/alternatives/Java_vm
lrwxrwxrwx 1 root root    24 2011-05-01 05:22 /usr/bin/javaws -> /etc/alternatives/javaws
lrwxrwxrwx 1 root root    26 2011-05-12 19:45 /usr/bin/jcontrol -> /etc/alternatives/jcontrol
lrwxrwxrwx 1 root root    23 2011-04-26 02:24 /usr/bin/jexec -> /etc/alternatives/jexec
2
garec

Java_HOMEとPATHを変更するだけでは不十分です。

Java必要なJDKバージョン(Java Runtime Environment JREだけでなく、Java DEVELOPMENT Kit)をインストールした後、Sudo update-alternatives --config Java。 Ubuntuを使用している場合は、おそらく1.6と1.7がインストールされており、PPAで1.8を使用できます(ただし、1.8のPPAは古くありません)。

0
brandoncurtis