14

私は Eclipse を ant スクリプトと共に使用しています。Eclipse は、Windows XP のデフォルトの JRE インストールでうまく動作します。

クラスパスにtools.jarがないために失敗するjavac-tagを使用してコンパイルするantスクリプトを実行したいときに、煩わしさが生じます。

JDK を Windows のデフォルトの Java にすることができれば、現在持っているものに加えて、箱から出してすぐに動作する ant を手に入れることができるという考えにたどり着きました。

これはできますか?インストールプロセスで見逃したものは何ですか?


編集:私はJAVA_HOMEを知っていますが、それは面倒でエラーが発生しやすいです(新しいJDKが利用可能になったときに環境変数を手動で更新することは、常に覚えていることではありません)。


編集: javac タスクで Eclipse コンパイラ (ecj.jar) を使用する方法を考え出しました。これは非常にうまく機能します。


編集:MavenはEclipseコンパイラの使用もサポートしていますが、これはめったに使用されず、古いバージョンのecj.jarでは使用されないようです。これについては後ほど検討したいと思います。


編集: maven-compiler-plugin 3.0 で ecj を使用すると非常にうまく機能し、JRE でビルドできます。


編集: ecj によって生成されたバイトコードを解析するときに javadoc ツールがクラッシュするという問題がありました。

4

8 に答える 8

15

答えは「いいえ」です。インストール時に JDK をデフォルトの JVM にする方法はありません。

他の回答が指摘しているように、パスと JAVA_HOME を調整して、JDK または別の JVM を完全に指すようにすることができます。これは実際、Java インストールが最初に行うことです。

ただし、問題は tools.jar を見つけたいということです。これを行うには、デフォルトの JVM の下の ext ディレクトリにコピーできます。ここでJDKファイル構造を確認してください。これはおそらくうまくいくでしょう。

一方、Java の JAVA_HOME 変数と PATH 変数を変更するのが煩わしいと思われる場合は、それは私たちが鋭く保つために行う一連のことの 1 つに過ぎないことを思い出してください。冗談です、2009年にまだこれをしなければならないのは残念です

于 2009-09-07T10:58:50.377 に答える
9
  1. Web サイトから JDK をダウンロードします。
  2. すべてが完了したら、コントロールパネルに移動します
  3. JAVAを開く
  4. 「Java」タブをクリックし、「表示」を選択します
  5. リストには 1 つのアイテムが表示されます。次のように、Java パスを JRE からダウンロードした JDK に変更します C:\Program Files\Java\<your_jdk_version>\bin\java.exe
    たとえば、私の場合は次のようになります。 C:\Program Files\Java\jdk1.7.0_07\bin\java.exe
于 2012-10-13T14:26:40.663 に答える
4

tools.jar ファイルを Eclipse が探している場所にコピーするとうまくいくかもしれませんが、次に JDK をアップグレードするときに覚えていない可能性があるため、面倒で壊れやすい手順です。適切な場所でそれを探すように Eclipse に説得することをお勧めします。

JAVA_HOME を正しい場所に設定すると、一部のツールでは機能しますが、Eclipse はそれを受け入れません

試してみるいくつかのこと:

  • Preferences->Java->Installed JREsで JDK が識別され、選択されていることを確認します 。

  • Ant が JDK によって呼び出されていることを確認します。1 つの手がかりは、コンソール出力の上部に、使用されている javaw.exe のパスが表示されることです。そのパスが JRE にある場合は、さらに説得力が必要です。Run->External Tools->External Tools Configurations->[your Ant build]->JREを確認 し、そこの設定が JDK を指していることを確認します。

于 2011-03-14T17:45:40.090 に答える
2

Try changing the JAVA_HOME environment variable to point to the JDK instead of the JRE.

Alternatively or possibly additionally, add a PATH entry to the JDK bin directory before any of the Windows system directories.

I suspect JAVA_HOME is enough to get Ant working, but it's sometimes nice to get the JDK version of java etc on the path too, so that when you just run java from the command line, you'll get exactly the same version as when you run javac.

于 2009-09-07T10:39:47.527 に答える
1

おそらく、パスを自動的に再構成する WSH スクリプトを作成できます。

この JScript スクリプトは、いくつかの情報を出力するだけです。

//file:  jdk.js              usage: cscript /Nologo jdk.js
var objShell = WScript.CreateObject("WScript.Shell");
function setJdk(version) {
  try {
    var jdk = objShell.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\" +
       "JavaSoft\\Java Development Kit\\" + version + "\\JavaHome");
    if(jdk != null && jdk != "") {
      jdk += "\\bin";
      var path = objShell.RegRead("HKEY_CURRENT_USER\\Environment\\Path");
      path = jdk + ";" + path;
      WScript.Echo("Could set PATH to " + path + "\n");
    }
  } catch(err) { /*probably key does not exist*/ }
}
setJdk("1.7");
setJdk("1.6");
setJdk("1.5");

レジストリへの書き込みに使用できるRegWriteメソッドがあります。最新バージョンの特定、パスの再調整、古いエントリの削除、システム パスとユーザー パスの整理など、多少の作業が必要です。セットにも使えること間違いなしJAVA_HOMEです。system32JRE インストーラーがディレクトリに を配置するため、JDK エントリはディレクトリの前に表示する必要がjava.exeあります。

(シェルがそのような変更を検出するかどうか、または何らかの種類の再起動/環境変数のリロードが必要になるかどうかは、100% わかりません。)

于 2009-09-07T12:19:25.800 に答える
0

どうやら Eclipse はtools.jar. javacJRE(JDKではなく)で動作する特定のコマンドがあると思います。これが、彼らが警告をリストできる理由である可能性があります。

とにかく、私は標準的な方法 (上で提案したように) に進み、システムに JDK をインストールします。JAVA_HOMEファイルを微調整することで、その特定の JDK (変更なし) で Eclipse を起動することもできeclipse.iniます (これらの手順を参照してください)。

于 2009-09-07T20:22:23.430 に答える
0

もちろん、これは実行可能です。なぜ人々がこの質問にノーと言ったのか理解できません。tools.jar をコピーするのは賢明な方法ではありません。Eclipse を使用するときに問題が発生しました。ビルド パスに jre の代わりに jdk を追加するだけで機能します。

詳細は次のとおりです。

http://www.gamefromscratch.com/post/2011/11/15/Telling-Eclipse-to-use-the-JDK-instead-of-JRE.aspx

于 2016-06-11T18:24:14.183 に答える
0

これは通常JAVA_HOME、使用するルート JDK ディレクトリに環境変数を設定することによって行われます。

たとえば、コマンド ラインまたはバッチ ファイルから次のようにします。

set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_14

ただし、JAVA_HOME を永続的に設定するには、 My Computerのプロパティ シートの [詳細設定] タブで環境変数に追加します。

于 2009-09-07T10:43:05.910 に答える