問題タブ [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.
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 ツールがクラッシュするという問題がありました。
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桁に埋め込んでみましたが、それもコンパイルされません。
java - Mavenを使用してEclipseコンパイラーのJava6アノテーション処理構成をセットアップします
Java 6アノテーションプロセッサ用のeclipseプロジェクトコンパイラ設定をセットアップするための最良の方法は何ですか?
私の解決策は、org.eclipse.jdt.apt.core.prefs
とfactorypath
ファイルを手動で設定することです。これは少し面倒です:
- factorypathファイルでプロセッサjarを参照します
- でEclipseアノテーションプロセッサの出力ディレクトリ
(org.eclipse.jdt.apt.genSrcDir
プロパティを設定しますorg.eclipse.jdt.apt.core.prefs
) - Eclipseアノテーションプロセッサの出力ディレクトリをソースフォルダとして追加します
1つの問題は、Eclipseで生成されたソースがMavenでコンパイルされることです。maven clean compile
Eclipseで生成されたソースファイルを削除するため、信頼できるのは1つだけです。(Eclipseとjavacで生成されたソースファイルが同期していない可能性があります。)
MavenソースパスでEclipseによって生成されたソースファイルなしでMavenを構成するためのより良い解決策はありますか?
ant - antjavacでJavaのターゲットバージョンを設定する
特定のバージョンのJava(1.5)で実行するには、ant(1.7.0)を使用してjarファイルをコンパイルする必要があります。現在、自分のマシンにはJava1.6があります。私は設定を試みました:
私も削除しました
プロパティファイルはありません。Linux/SUSEでJava1.6を実行しています
また、jarファイルで予期されるJavaのバージョンを判別する簡単な方法もあります。
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 の両方を試しました
java - jarからのクラスが必要なのに、cygwinでJavaファイルをコンパイルできないのはなぜですか?
クラスが使用するクラスを含む提供された.jarファイルと一緒にクラスをコンパイルしようとしています。
これは私が試していることです:
そして、これは応答です:
2つのエラー
これは私のクラスです:
WordSearch.jarに含まれるもの:
(WordSearchSolver.javaとWordsearch.jarは同じディレクトリにあります)
私は何かが足りないのですか?
eclipse - javacを持たずにMyEclipseでJavaクラスをコンパイルするにはどうすればよいですか?
私のシステムでは、Sun JRE (JDK ではない) と MyEclipse IDE をインストールしました。
Program Files (Windows プラットフォーム) の MyEclipse のインストール済みファイルで javac.exe を検索しましたが、no results found for javac.exe
.
MyEclipse が .java ファイルをコンパイルするために使用するツールはどれですか?
java - Javaクラスをコンパイルするときにコンパイル時の依存関係チェックを無効にする
次の2つのJavaクラスについて考えてみます。
pkg.not.in.classpath.FooBar
さらに、それがクラスパスに見つからないと仮定します。
最初のクラスは、標準のjavacを使用して正常にコンパイルされます。
ただし、2番目のクラスはコンパイルされず、javacはエラーメッセージを表示します"package pkg.not.in.classpath does not exist"
。
依存関係をチェックすると、メソッドの引数が間違っているかどうかなどをコンパイラが通知できるため、エラーメッセージは一般的な場合に適しています。
コンパイル時の依存関係のこのチェックは便利で便利ですが、上記の例でJavaクラスファイルを生成するために厳密に必要なわけではありません。
コンパイル時の依存関係チェックを実行せずに有効なJavaクラスファイルを生成することが技術的に不可能な例を挙げてください。
javacまたは他のJavaコンパイラにコンパイル時の依存関係チェックをスキップするように指示する方法を知っていますか?
あなたの答えが両方の質問に対応していることを確認してください。
java - 非推奨の API に関する javac 警告を抑制するにはどうすればよいですか?
コンパイルすると、javac は次のように出力します。
この警告を抑制したいと思います。-Xlint:none を試しても解決しないようです。
java - Java コンパイラのソース コードはどこにありますか?
Sun の標準 Java コンパイラのソース コードを探していますjavac
。
jdk1.6.0_07 には関連するいくつかのクラスがありますが、それらはインターフェース (java.lang.Compiler
およびjavax.tools.JavaCompiler
) です。com.sun.mirror.*
との下にもいくつかのパッケージがありますcom.sun.source.*
。これらは、Java 抽象構文ツリーを表すためのインターフェイスのようです。
しかし、コンパイラのソースが見つかりません。どこにあるのか知っている人はいますか?