私はJava rootを持っていないクラスサーバーで作業しています。antを使用してコンパイルしようとすると、間違ったディレクトリ(/usr/Tomcat
の代わりに /usr/Tomcat/jre
)。
ユーザーアカウントの設定時に行うように言われたものの1つは、export Java_HOME=/usr/Tomcat/jre
を.bashrcファイルに追加します。それが問題を処理することになっていたかどうかはわかりませんが、そうではないようです。
だから、antを実行するときだけ、antのJava_HOMEプロパティを変更するにはどうすればよいですか?
編集:echo $Java_HOME
に指差す /usr/Tomcat/jre
echo $Java_HOME\bin
に指差す /usr/Tomcat/jrebin
問題は、通常antを実行するとこのエラーが発生することです。
Unable to locate tools.jar. Expected to find it in /usr/Tomcat/lib/tools.jar
Buildfile: build.xml
compile:
[javac] Compiling 1 source file to /home/ejm244/build/classes
BUILD FAILED
/home/ejm244/build.xml:9: 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
Total time: 0 seconds
Antを実行するための独自のスクリプトを作成できます。 ant.shという名前:
#!/bin/sh
Java_HOME=</path/to/jdk>; export Java_HOME
ant $@
その後、スクリプトを実行します。
$ chmod 755 ant.sh
$./ant.sh clean compile
または実行したいantターゲット
Java_HOMEは、JREではなくJDKがインストールされている場所を指している必要があります。
Ls $ Java_HOMEと入力すると、何が見えますか? ls $ Java_HOME/bin /を実行すると、javacが表示されますか?
最初のものが機能しない場合は、正しいディレクトリを指すJava_HOMEがありません。 2番目が機能しない場合は、Java_HOMEをJREではなくJDKに向ける必要があります。
私のWindows 7マシンの設定:
Java_HOME = "C:\ Program Files\Java\jdk1.6.0_18"
うまくいきませんでした。しかし、設定:
Java_HOME = C:\ Program Files\Java\jdk1.6.0_18
働いた。
Antを呼び出すためのシェルスクリプトを見ると、.bashrcでシェルに設定されている$ Java_HOMEの値が、ファイル/etc/ant.conf、$HOME/.ant/ant.conf、および$でオーバーライドされる可能性があります。 HOME/.antrc。 bash -x <antスクリプトへのパス>を実行すると、$ Java_HOMEがオーバーライドされている場所を追跡するのに役立つデバッグ情報が出力されます。
コンパイラを変更するには2つの方法があります。
export Java_HOME=/path/to/jdk
は、Antを起動する前に。<javac exectuable="/path/to/javac">
を設定別のオプションは、それぞれのtools.jar
をクラスパスに追加することですが、Mavenなどの別のツールからAntを起動する場合、通常、そのパスが使用されます。
Java Antのコンパイラを変更するこれらの(または他の)オプションの詳細については、 この記事 を参照してください。
Env変数を設定します:JAVACMD-Java実行可能ファイルのフルパス。これを使用して、Java_HOME/bin/Java(.exe)とは異なるJVMを呼び出します。
環境変数Java_HOME
が正しく設定されていれば、ant
は各build.xmlまたはビルドファイル内で構成済みのJREを使用できます。
Antが使用しているJREのバージョンを確認するには、ビルドファイルを右クリックし、選択するタスクなどの詳細を表示するビルドantを選択して、使用するJREを選択します。
プロジェクトレベルの設定を使用するか、ワークスペースレベルで使用することをお勧めします。
Bashを使用するときは、これを試してください:
$ export Java_HOME=/usr/Tomcat/jre
コードをコンパイルしようとしている場合、Java_HOMEはJDKホームを指す必要があります。 「/ usr/Tomcat/jre/bin/javac」が存在するかどうかを確認します。疑わしい。
JDKがない場合は、ECJ(Eclipseコンパイラ)ライブラリを取得して '〜/ .ant/lib'にドロップし、そのコンパイラを使用するコマンドラインにシステムプロパティを追加することで回避できます。 -詳細については、Antマニュアルを確認してください。
プロジェクトのJRE(プロジェクトプロパティ-> Java Build Path-> Libraries、通常最後のエントリ))、または環境設定のグローバルデフォルト(Java-> Installed JRE)をJDKではなく、 JRE。
シェルからantを実行する場合、最初にexport Java_HOME
する必要はありません。これにより、現在のシェルと今後のすべてのコマンドにその変数が設定され、代わりに
user@Host:~# Java_HOME=/path/to/jdk ant targets
Java_HOMEパスを、Java REディレクトリの代わりにJava SDKディレクトリに変更する必要があります。Windowsでは、コマンドでsetコマンドを使用してこれを行うことができます。プロンプト。
例えば.
java_HOME = "C:\ Program Files\Java\jdk1.6.0_14"を設定します
これで試してください:
/usr/sbin/update-alternatives --config Java