問題タブ [javac]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
8 に答える
56943 参照

java - JDK をデフォルトの JRE にするにはどうすればよいですか?

私は 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 ツールがクラッシュするという問題がありました。

0 投票する
1 に答える
1622 参照

java - コンパイル時のメモリ不足エラー Java 6.0

実行時に -Xmx -Xms を使用する方法を知っています。コンパイラにさらに RAM を割り当てるように依頼する方法はありますか。私のPCには2つのギグがあります。テキストパッドだけのIDEは使用しません。10,000,000 桁の BigInteger を作成して操作しようとしています。StringBuffer と ensureCapacity(10000000) を作成しようとしましたが、コンパイルされません。コンパイル前またはコンパイル中に、より多くのRAMが必要であることをコンパイラに伝えるために使用できるクラスはありますか? 私は RunTime メソッドについて読みましたが、BigInteger を乗算し続け、ヒープを監視します。文字列をコード「1000000」+ etc 10,000,000桁に埋め込んでみましたが、それもコンパイルされません。

0 投票する
3 に答える
11603 参照

java - Mavenを使用してEclipseコンパイラーのJava6アノテーション処理構成をセットアップします

Java 6アノテーションプロセッサ用のeclipseプロジェクトコンパイラ設定をセットアップするための最良の方法は何ですか?

私の解決策は、org.eclipse.jdt.apt.core.prefsfactorypathファイルを手動で設定することです。これは少し面倒です:

  • factorypathファイルでプロセッサjarを参照します
  • でEclipseアノテーションプロセッサの出力ディレクトリ(org.eclipse.jdt.apt.genSrcDirプロパティを設定しますorg.eclipse.jdt.apt.core.prefs
  • Eclipseアノテーションプロセッサの出力ディレクトリをソースフォルダとして追加します

1つの問題は、Eclipseで生成されたソースがMavenでコンパイルされることです。maven clean compileEclipseで生成されたソースファイルを削除するため、信頼できるのは1つだけです。(Eclipseとjavacで生成されたソースファイルが同期していない可能性があります。)

MavenソースパスでEclipseによって生成されたソースファイルなしでMavenを構成するためのより良い解決策はありますか?

0 投票する
4 に答える
144324 参照

ant - antjavacでJavaのターゲットバージョンを設定する

特定のバージョンのJava(1.5)で実行するには、ant(1.7.0)を使用してjarファイルをコンパイルする必要があります。現在、自分のマシンにはJava1.6があります。私は設定を試みました:

私も削除しました

プロパティファイルはありません。Linux/SUSEでJava1.6を実行しています

また、jarファイルで予期されるJavaのバージョンを判別する簡単な方法もあります。

0 投票する
4 に答える
5414 参照

java - javac が文句を言う: enum 実装インターフェースでシンボルが見つからない

以下に定義する 3 つの Java タイプがあります。

Main.java:

操作.java

OperationDefinitions.java

(これは、Effective Java 2nd ed. Item 30 に記載されている例とほとんど同じです) 上記のコードは Eclipse で問題なくコンパイルおよび実行されますが、Sun javac では次のエラーが発生します。

Main.java の 12 行目を から に変更return func.call(values);すると、正常return ((Operation)func).call(values)にコンパイルされます。さらに、3 つのタイプ (Operation、Main、および OperationDefinitions) を 1 つのメイン クラスの 3 つのサブクラスとしてまとめると、コンパイルも正常に行われます。

だから私は私の問題の回避策を持っていますが、なぜjavacはここでキャストを必要とするのですか? これは javac または eclipse のバグですか?

Sun javac 1.5.0_19 と 1.6.0_16 の両方を試しました

0 投票する
3 に答える
5157 参照

java - jarからのクラスが必要なのに、cygwinでJavaファイルをコンパイルできないのはなぜですか?

クラスが使用するクラスを含む提供された.jarファイルと一緒にクラスをコンパイルしようとしています。

これは私が試していることです:

そして、これは応答です:

2つのエラー

これは私のクラスです:

WordSearch.jarに含まれるもの:

(WordSearchSolver.javaとWordsearch.jarは同じディレクトリにあります)

私は何かが足りないのですか?

0 投票する
2 に答える
650 参照

eclipse - javacを持たずにMyEclipseでJavaクラスをコンパイルするにはどうすればよいですか?

私のシステムでは、Sun JRE (JDK ではない) と MyEclipse IDE をインストールしました。

Program Files (Windows プラットフォーム) の MyEclipse のインストール済みファイルで javac.exe を検索しましたが、no results found for javac.exe.

MyEclipse が .java ファイルをコンパイルするために使用するツールはどれですか?

0 投票する
8 に答える
7033 参照

java - Javaクラスをコンパイルするときにコンパイル時の依存関係チェックを無効にする

次の2つのJavaクラスについて考えてみます。

pkg.not.in.classpath.FooBarさらに、それがクラスパスに見つからないと仮定します。

最初のクラスは、標準のjavacを使用して正常にコンパイルされます。

ただし、2番目のクラスはコンパイルされず、javacはエラーメッセージを表示します"package pkg.not.in.classpath does not exist"

依存関係をチェックすると、メソッドの引数が間違っているかどうかなどをコンパイラが通知できるため、エラーメッセージは一般的な場合に適しています。

コンパイル時の依存関係のこのチェックは便利で便利ですが、上記の例でJavaクラスファイルを生成するために厳密に必要なわけではありません。

  1. コンパイル時の依存関係チェックを実行せずに有効なJavaクラスファイルを生成することが技術的に不可能な例を挙げてください。

  2. javacまたは他のJavaコンパイラにコンパイル時の依存関係チェックをスキップするように指示する方法を知っていますか?

あなたの答えが両方の質問に対応していることを確認してください。

0 投票する
9 に答える
84458 参照

java - 非推奨の API に関する javac 警告を抑制するにはどうすればよいですか?

コンパイルすると、javac は次のように出力します。

この警告を抑制したいと思います。-Xlint:none を試しても解決しないようです。

0 投票する
2 に答える
23582 参照

java - Java コンパイラのソース コードはどこにありますか?

Sun の標準 Java コンパイラのソース コードを探していますjavac

jdk1.6.0_07 には関連するいくつかのクラスがありますが、それらはインターフェース (java.lang.Compilerおよびjavax.tools.JavaCompiler) です。com.sun.mirror.*との下にもいくつかのパッケージがありますcom.sun.source.*。これらは、Java 抽象構文ツリーを表すためのインターフェイスのようです。

しかし、コンパイラのソースが見つかりません。どこにあるのか知っている人はいますか?