問題タブ [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 投票する
6 に答える
9262 参照

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 ファイルに隠されています。答えはどこかにあると思いますが、見つかりませんでした。

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

linux - 複数のJavaファイルをコンパイルするLinux

これが私のディレクトリ構造です。

/user/a /user/b /user/b

フォルダー a、b、c 内に person.java ファイルがあります (これは同じファイルで、1 行の変更のみです。

今、私のシェルでは、私の/ user /ディレクトリにいて、やろうとしています

シェルは次のエラーを返します。

person.java:14: クラスが重複しています: person

これを解決するものはありますか?

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

java - javac.exe AST プログラムによるアクセスの例

javac.exe 内の抽象構文ツリー (AST) にプログラムでアクセスすることはできますか? 例を挙げていただけますか?

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

java - ソースツリーの一部のみをantでコンパイルする

ソースがsrc/ツリー(および場合によってはtest /ツリー)にあるとします。そのツリーの一部だけをコンパイルしたいとします。私がそれをやりたいと思う理由はさまざまです。例として、(特定のクラスを含めずに)可能な限り最小のjarを作成したい場合や、コンパイル対象のコンパイル時間を最速にしたい場合があります。しかし、私は絶対にすべての依存関係をコンパイルしたいです!

これは、次のコマンドラインから簡単に実行できます。

さて、どうやってアリでそれをすることができますか?javac antタスクはすべてをコンパイルします

ソースディレクトリと宛先ディレクトリは、コンパイルするJavaソースファイルを再帰的にスキャンします。

excludesおよびパラメータを使用できますincludesが、この目的には問題があります。実際、includes(自動依存関係ルックアップではなく)すべてを明示的に設定する必要があるようです。最悪の場合でも除外するものが優先されます

包含と除外の両方が使用される場合、少なくとも1つの包含パターンに一致し、どの除外パターンにも一致しないファイル/ディレクトリのみが使用されます。

したがって、使用することはできません

何もコンパイルしないので:-(

javacantでその単純なコマンドラインを実現する方法はありますか?


編集:あなたの答えをありがとう、Sadie、私はそれを受け入れています、なぜならそれは私がこの質問で思っていたように機能するからです。しかし、私はいくつかのコメントを持っています(あなたの答えのコメントフィールドに入るには長すぎます):

1)私はドキュメントを読みました(上記のリンクを参照)が、includesあなただけで実際に他のすべてを除外しているのかどうかは不明です

2)あなたがちょうどincludesantログのようなものをするとき

依存関係によって、(多くの)複数のソースファイルをコンパイルする場合でも。

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

java - Javacデバッグのオンとオフの間にパフォーマンスの違いはありますか?

Javacを使用してデバッグ情報の生成をオンにすると、クラスファイルは20〜25%大きくなります。これは、Javaプログラムの実行にパフォーマンスの影響を及ぼしますか?はいの場合、どの条件と数で。ファイルが大きいため、クラスのロードに少し影響があると思いますが、これは最小限に抑える必要があります。

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

java - 同じ名前の匿名クラスの外部でメソッドを呼び出せないのはなぜですか

最後のコードはコンパイルエラーを生成します:

問題はなぜですか?javacがrun()を呼び出していると考え、run(int bar)が見つからないのはなぜですか?正しくfoo(int bar)と呼ばれていました。NotApplicable.this.run(42);を使用する必要があるのはなぜですか?バグですか?

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

java - javac は、同じ名前の無名クラスの外部にあるメソッドを見つける必要がありますか?

この質問はフォローアップです: 同じ名前の匿名クラスの外部でメソッドを呼び出せないのはなぜですか

この前の質問はなぜ答えますが、javacrun(int bar)? (run(42) が失敗する理由については、前の質問を参照してください)

ダメなら仕様によるものでしょうか?あいまいなコードを生成しますか? 私のポイントは、これはバグだと思います。前の質問でこのコードがコンパイルに失敗する理由を説明しましたが、現在のレベルで一致するものが見つからない場合、javac がツリーの上位を検索した場合にコンパイルする必要があると思います。すなわち。this.run() が一致しない場合、実行メソッドの NotApplicable.this を自動的にチェックする必要があります。

また、foo(int bar) が正しく検出されていることにも注意してください。run(int bar) が見つからない理由を説明する場合は、foo(int bar) が見つかった理由も説明する必要があります。

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

java - コンテキスト クラスローダーで JDK6 ToolProvider と JavaCompiler を使用するにはどうすればよいですか?

私の使用例は、JDK 6 で提供される ToolProvider および JavaCompiler クラスを使用して、Java プログラムから生成されたソース ファイルをコンパイルすることです。ソース ファイルには、コンテキスト クラスローダー (J2EE コンテナーで実行される) 内のクラスへの参照が含まれていますが、システム クラスローダー内には含まれていません。私の理解では、デフォルトでは、ToolProvider はシステム クラスローダーを使用して JavaCompiler インスタンスを作成します。

JavaCompiler が使用するクラスローダーを指定する方法はありますか?

IBM DeveloperWorks の何かを変更して、このアプローチを試しました。

FileManagerImpl は次のように定義されています。

スタックトレースは、アノテーション処理中に一度だけ呼び出されたことを示しています。コンパイルするソース ファイルで参照されているクラスがシステム クラスパス上になく、コンテキスト クラスローダーから使用できることを確認しました。

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

bash - bashシェルでjavac出力をキャプチャしようとしています

Java コンパイラの出力をファイルにリダイレクトしようとしています。私はそれが本来あるべきだと思った:

か何か。代わりに、ターミナルにすべての出力が表示され、log.txt には何も表示されません!

また、エラーもログに記録したい場合は、そうしますか

?

0 投票する
5 に答える
4279 参照

java - 列挙型定義の静的コンテキスト

Java のenum機能によって提供されるシンタックス シュガーは、少し混乱することがあります。コンパイルされない次の例を考えてみましょう。

コンパイラが言う理由を誰でも説明できますか

非静的メソッド 'helper()' は静的コンテキストから参照できません

このコンテキストはどのくらい正確に静的ですか?

への呼び出しを変更するか(ここで 1 つの紛らわしい点があります: コンパイラが示唆するような「静的コンテキスト」に実際にいる場合、" " はどのように機能するのでしょうか?)、または の可視性をデフォルト レベルに上げることによって、このコンパイルを行うことができます。どちらがいいですか?また、より良い質問のタイトルを提案してください:-)this.helper()thishelper()

編集これについていくつかの議論を見つけましたが、本当の答えはありません。this.helper()私の同僚は、それが機能するという事実は、実際にはコンパイラのバグだと考えています。実際、新しい Java バージョンでは動作しないようです(動作しますsuper.helper()が): 「シンボル ヘルパー () が見つかりません」。(奇妙なことが起こっていますが:異なるJavaバージョンで試した後this.helper()、それらのいずれでも再度コンパイルすることはできません...)