問題タブ [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.
javac - Borland JBuilder 2005/2006 で javac プロセスの最大ヒープ サイズを増やす方法
最新のほとんどの IDE には、javac がコンパイルを実行するのに十分なヒープ メモリを確保するために設定できるパラメータがあります。ここに入る価値のない理由により、当面は JBuilder 2005/2006 に縛られており、ソース コードの量が javac で処理できる量を超えているようです。
JBuilder 2005/2006 javac に固有の回答を保持してください (現時点では移行できず、Borland Make コンパイラは Java 1.6 を正しくサポートしていません)。
javac にどのパラメータをどのように渡す必要があるかを理解しています。問題は、IDE がこれらのパラメータをどこにも設定できないように見えることです。多くの構成が Jbuilder Install\bin*.config ファイルに隠されています。答えはどこかにあると思いますが、見つかりませんでした。
linux - 複数のJavaファイルをコンパイルするLinux
これが私のディレクトリ構造です。
/user/a /user/b /user/b
フォルダー a、b、c 内に person.java ファイルがあります (これは同じファイルで、1 行の変更のみです。
今、私のシェルでは、私の/ user /ディレクトリにいて、やろうとしています
シェルは次のエラーを返します。
person.java:14: クラスが重複しています: person
これを解決するものはありますか?
java - javac.exe AST プログラムによるアクセスの例
javac.exe 内の抽象構文ツリー (AST) にプログラムでアクセスすることはできますか? 例を挙げていただけますか?
java - ソースツリーの一部のみをantでコンパイルする
ソースがsrc/ツリー(および場合によってはtest /ツリー)にあるとします。そのツリーの一部だけをコンパイルしたいとします。私がそれをやりたいと思う理由はさまざまです。例として、(特定のクラスを含めずに)可能な限り最小のjarを作成したい場合や、コンパイル対象のコンパイル時間を最速にしたい場合があります。しかし、私は絶対にすべての依存関係をコンパイルしたいです!
これは、次のコマンドラインから簡単に実行できます。
さて、どうやってアリでそれをすることができますか?javac antタスクはすべてをコンパイルします:
ソースディレクトリと宛先ディレクトリは、コンパイルするJavaソースファイルを再帰的にスキャンします。
excludes
およびパラメータを使用できますincludes
が、この目的には問題があります。実際、includes
(自動依存関係ルックアップではなく)すべてを明示的に設定する必要があるようです。最悪の場合でも、除外するものが優先されます。
包含と除外の両方が使用される場合、少なくとも1つの包含パターンに一致し、どの除外パターンにも一致しないファイル/ディレクトリのみが使用されます。
したがって、使用することはできません
何もコンパイルしないので:-(
javac
antでその単純なコマンドラインを実現する方法はありますか?
編集:あなたの答えをありがとう、Sadie、私はそれを受け入れています、なぜならそれは私がこの質問で思っていたように機能するからです。しかし、私はいくつかのコメントを持っています(あなたの答えのコメントフィールドに入るには長すぎます):
1)私はドキュメントを読みました(上記のリンクを参照)が、includes
あなただけで実際に他のすべてを除外しているのかどうかは不明です
2)あなたがちょうどincludes
antログのようなものをするとき
依存関係によって、(多くの)複数のソースファイルをコンパイルする場合でも。
java - Javacデバッグのオンとオフの間にパフォーマンスの違いはありますか?
Javacを使用してデバッグ情報の生成をオンにすると、クラスファイルは20〜25%大きくなります。これは、Javaプログラムの実行にパフォーマンスの影響を及ぼしますか?はいの場合、どの条件と数で。ファイルが大きいため、クラスのロードに少し影響があると思いますが、これは最小限に抑える必要があります。
java - 同じ名前の匿名クラスの外部でメソッドを呼び出せないのはなぜですか
最後のコードはコンパイルエラーを生成します:
問題はなぜですか?javacがrun()を呼び出していると考え、run(int bar)が見つからないのはなぜですか?正しくfoo(int bar)と呼ばれていました。NotApplicable.this.run(42);を使用する必要があるのはなぜですか?バグですか?
java - javac は、同じ名前の無名クラスの外部にあるメソッドを見つける必要がありますか?
この質問はフォローアップです: 同じ名前の匿名クラスの外部でメソッドを呼び出せないのはなぜですか
この前の質問はなぜ答えますが、javacがrun(int bar)? (run(42) が失敗する理由については、前の質問を参照してください)
ダメなら仕様によるものでしょうか?あいまいなコードを生成しますか? 私のポイントは、これはバグだと思います。前の質問でこのコードがコンパイルに失敗する理由を説明しましたが、現在のレベルで一致するものが見つからない場合、javac がツリーの上位を検索した場合にコンパイルする必要があると思います。すなわち。this.run() が一致しない場合、実行メソッドの NotApplicable.this を自動的にチェックする必要があります。
また、foo(int bar) が正しく検出されていることにも注意してください。run(int bar) が見つからない理由を説明する場合は、foo(int bar) が見つかった理由も説明する必要があります。
java - コンテキスト クラスローダーで JDK6 ToolProvider と JavaCompiler を使用するにはどうすればよいですか?
私の使用例は、JDK 6 で提供される ToolProvider および JavaCompiler クラスを使用して、Java プログラムから生成されたソース ファイルをコンパイルすることです。ソース ファイルには、コンテキスト クラスローダー (J2EE コンテナーで実行される) 内のクラスへの参照が含まれていますが、システム クラスローダー内には含まれていません。私の理解では、デフォルトでは、ToolProvider はシステム クラスローダーを使用して JavaCompiler インスタンスを作成します。
JavaCompiler が使用するクラスローダーを指定する方法はありますか?
IBM DeveloperWorks の何かを変更して、このアプローチを試しました。
FileManagerImpl は次のように定義されています。
スタックトレースは、アノテーション処理中に一度だけ呼び出されたことを示しています。コンパイルするソース ファイルで参照されているクラスがシステム クラスパス上になく、コンテキスト クラスローダーから使用できることを確認しました。
bash - bashシェルでjavac出力をキャプチャしようとしています
Java コンパイラの出力をファイルにリダイレクトしようとしています。私はそれが本来あるべきだと思った:
か何か。代わりに、ターミナルにすべての出力が表示され、log.txt には何も表示されません!
また、エラーもログに記録したい場合は、そうしますか
?