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」に設定されています
この問題を解決する方法はありますか?
Java_HOME変数がjreではなくjdkインストールを指すようにします。
開発キットではなくランタイム環境を参照しています-コンパイラがないため、コンパイラを見つけることができません。
あなたが投稿した行から、あなたはopen-jdkを持っていると述べ、最後にjreを削除することができます:
export Java_HOME='/usr/lib/jvm/Java-6-openjdk/'
Java ...をインストールしました.
apt-get install default-jre
しかし、[〜#〜] jdk [〜#〜] ...
apt-get install default-jdk
これは仕様です。 antのJava.home
(Java.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環境を実行しているかは関係なく、コンパイラーは常に明確に指定されます。
私はこの質問が古いことを知っていますが、受け入れられた答えはもう機能しません。これは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 )誰かがこれにこだわっている/いた場合。
現在、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)にのみ含まれます。
私はWindows 7を使用していますが、同じ問題に苦労しています。環境変数を変更して修正しました。
環境変数を変更するには ここをクリック
パス変数の最後に「;%Java_HOME%/ bin」を追加し、新しい「Java_HOME」変数を追加して、その値をJDKの場所「C:\ Program Files\Java\jdk1.8.0_11」に設定しました。その後、Node.jsコマンドプロンプトを再起動すると動作しました。
JDKディレクトリは私とは異なる場合があることに注意してください。また、設定によっては、環境変数を設定した後にコンピューターを再起動する必要がある場合があります。
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が何にも設定されていないことを確認してください。
上記のJava_HOMEは、コンパイラが含まれていないJREを指しているだけです。 Java_HOMEを設定します
/usr/lib/jvm/Java-6-openjdk
...そしてさらに試みる。
この問題は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
わたしにはできる。
ジェンキンスの下では次のように文句を言います:
/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
centos yum -yの場合、Java-1.7.0-openjdk-devel.x86_64をインストールします
そして、Java_HOME =/usr/lib/jvm/Java-1.7.0-openjdk.x86-64を更新します
実行:
$ export Java_HOME=/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.141-3.b16.el6_9.x86_64
オペレーティングシステム環境の設定:
vi /etc/environment
次に、次の手順を実行します。
ペースト
Java_HOME=/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0.141-3.b16.el6_9.x86_64
Escキーを押します
回答に記載されているようにJava_HOMEパスを更新したら、これを行う必要があります。
$source ~/.bashrc
これにより、bashrcが更新され、再度確認すると$ Java_HOMEの更新されたパスが表示されます。
基本的な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
そして物事は働いた。図を移動します。
Ubuntu 14.04では、問題を解決するために2つの部分が見つかりました。
/jre
を削除します。私にとって:export Java_HOME=/usr/lib/jvm/Java-7-openjdk-AMD64/
Sudo apt-get install default-jdk