web-dev-qa-db-ja.com

JAVA_HOMEはJDKを指していません

Antを使用してアプリケーションをビルドおよび実行する方法についてのチュートリアルに従うことを試みています。すべての手順に従ってビルドファイルを作成しましたが、antを実行しようとするとこのエラーが発生します。

ビルドに失敗しました/home/bilal/tmp/ant/build.xml:19:javacコンパイラーが見つかりません。 com.Sun.tools.javac.Mainはクラスパスにありません。おそらく、Java_HOMEはJDKを指していません。現在、「/ usr/lib/jvm/Java-6-openjdk/jre」に設定されています

この問題を解決する方法はありますか?

31
comatose

Java_HOME変数がjreではなくjdkインストールを指すようにします。

開発キットではなくランタイム環境を参照しています-コンパイラがないため、コンパイラを見つけることができません。

あなたが投稿した行から、あなたはopen-jdkを持っていると述べ、最後にjreを削除することができます:

export Java_HOME='/usr/lib/jvm/Java-6-openjdk/'
32
NimChimpsky

Java ...をインストールしました.

apt-get install default-jre

しかし、[〜#〜] jdk [〜#〜] ...

apt-get install default-jdk
24
user2708687

これは仕様です。 antのJava.homeJava.lang.Systemプロパティ)は、OS環境でJava_HOMEを設定する方法と同じ意味で使用することはできません。おそらく、異なるプロパティ層とは根本的に異なる値でJavaコンパイラの場所をアサートしようとしています。つまり、Java.home(AntのJava internalsから)は_を指しますJava <any_installed_Java_pointed_to_by_ant>/jreのランタイム環境(JDK_HOME(OS環境から))は通常<DOWNLOADED_AND_INSTALLED_Java_DEVELOPMENT_KIT>に設定されます。

詳細については、私の質問と回答を参照してください: Antは「Java.home」をどこで設定し(そして間違っているのか)、「/ jre」を追加することになっていますか?

解決策は、${env.Java_HOME}を使用してAnt内のシステム環境プロパティにアクセスすることです。 executableプロパティをjavacパスに設定し、forkプロパティをyesに設定して、Javacタスクで明示的に使用するJavaを指定します( AntのJavacタスクを参照)ドキュメント )。そうすれば、Antが内部でどのJava環境を実行しているかは関係なく、コンパイラーは常に明確に指定されます。

13
ingyhere

私はこの質問が古いことを知っていますが、受け入れられた答えはもう機能しません。これはGoogle検索の最初のリンクであるため、この問題をどのように解決したか教えてあげます。

ubuntuを使用したEclipseの場合:

window-> Preferences-> Ant-> Runtime-> Select Ant_Home_Entriesをクリックして、外部jarの追加をクリックし、jdkがあるファイルエクスプローラー(デフォルトは/ usr/lib/jvm /にあります)およびlibフォルダーにあります。 jdkには、tool.jarがあります。これを選択して、適用をクリックします。

あなたのプロジェクトを構築しようとすると、物事はうまくいくはずです!

注:私は長い間antを使用していませんでしたが、ycsb couchbaseワークロードジェネレーターに必要でした( http://www.couchbase.com/wiki/display/couchbase/Load+Generator+Setup )誰かがこれにこだわっている/いた場合。

5
dtrihinas

現在、Java_HOMEが/usr/lib/jvm/Java-6-openjdk/jreを指しているように見えますが、これはJDKではなくJREのようです。 Java_HOMEを/usr/lib/jvm/Java-6-openjdkに設定してみてください。

JREにはJavaコンパイラは含まれず、JDK(Java Developer Kit)にのみ含まれます。

3
Michael

私はWindows 7を使用していますが、同じ問題に苦労しています。環境変数を変更して修正しました。

環境変数を変更するには ここをクリック

パス変数の最後に「;%Java_HOME%/ bin」を追加し、新しい「Java_HOME」変数を追加して、その値をJDKの場所「C:\ Program Files\Java\jdk1.8.0_11」に設定しました。その後、Node.jsコマンドプロンプトを再起動すると動作しました。

JDKディレクトリは私とは異なる場合があることに注意してください。また、設定によっては、環境変数を設定した後にコンピューターを再起動する必要がある場合があります。

2
user2941971

Tools.jarファイルをJDK\libフォルダーからJRE\libフォルダーにコピーしました。それ以来、それはチャンピオンのように働いた。

同様の問題があり、OpenJDKのバージョン6と7の両方に問題があることが判明しました。答えは、ubuntuフォーラムのr-seniorから来ています( http://ubuntuforums.org/showthread.php?t=1977619 )---バージョン6をアンインストールするだけです:

Sudo apt-get remove openjdk-6-*

実際には問題ではないため、Java_HOMEとCLASSPATHが何にも設定されていないことを確認してください。

1
user2330392

上記のJava_HOMEは、コンパイラが含まれていないJREを指しているだけです。 Java_HOMEを設定します

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

...そしてさらに試みる。

1

この問題はrhelで「Java_HOME =/usr/lib/jvm/Java-1.8.0-openjdk」(これはシンボリックリンクです)で発生し、antは文句を言います。

これに対する私の解決策は、次のようにJava_HOMEで実際のjdkパスを使用することです。

Java_HOME =/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64

わたしにはできる。

1
h.chen

ジェンキンスの下では次のように文句を言います:

/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/はJDKディレクトリのようには見えません

理由:JDKの開発キットが見つかりません。

溶液:

必ずopenjdk-develパッケージとJDK-1.8 *バージョンをインストールし、次のコマンドで再エクスポートしてください。#source〜/ .bash_profile

0
Sid_R

centos yum -yの場合、Java-1.7.0-openjdk-devel.x86_64をインストールします

そして、Java_HOME =/usr/lib/jvm/Java-1.7.0-openjdk.x86-64を更新します

0
uday

実行:

$ export Java_HOME=/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.141-3.b16.el6_9.x86_64

オペレーティングシステム環境の設定:

vi /etc/environment

次に、次の手順を実行します。

  1. Iを押す
  2. ペースト

    Java_HOME=/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.141-3.b16.el6_9.x86_64
    
  3. Escキーを押します

  4. プレス:wq
0

回答に記載されているようにJava_HOMEパスを更新したら、これを行う必要があります。

$source ~/.bashrc

これにより、bashrcが更新され、再度確認すると$ Java_HOMEの更新されたパスが表示されます。

0
user3270763

基本的なOS Luna(Ubuntu 12.04 LTSソースに基づく)でMeteor 1.0を使用してAndroidエミュレーターを実行しようとしたときにこの問題が発生しました。

openjdk-6-jdkとjreがインストールされました。最後に、成功を期待せずに、私は試しました:

Sudo apt-get remove openjdk-6-*

これにより完全に予期されたエラーが発生したため、フォローアップしました

Sudo apt-get install openjdk-6-jdk

そして物事は働いた。図を移動します。

0
keito

Ubuntu 14.04では、問題を解決するために2つの部分が見つかりました。

  1. 環境変数から/jreを削除します。私にとって:export Java_HOME=/usr/lib/jvm/Java-7-openjdk-AMD64/
  2. JDKとJREをインストールします:Sudo apt-get install default-jdk
0
Mark Stosberg