問題タブ [java-compiler-api]

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 投票する
1 に答える
506 参照

java - JavaCompiler.run() の呼び出し時に javac ファイルが見つかりません

JavaCompiler.run()を使用して、動的に生成されたソース ファイルをコンパイルしようとしています。以下は私のプログラムです。実行すると、System.err が表示されます。

javac: ファイルが見つかりません: C:..bla..bla..\test\A.java C:..bla..bla..\test\B.java C:..bla..bla..\test \C.java 使用法: javac use -help 可能なオプションのリスト

ファイルはコンパイルされていませんが、コマンドプロンプトに入るとすべてがコンパイルされました

javac C:..bla..bla..\test\A.java C:..bla..bla..\test\B.java C:..bla..bla..\test\A.java

ここに完全なソースコードがあります

store(filename, source) はファイル ソースを保存し、保存されたファイルへのフル パスを返します。

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

java - GUIから外部JARを持つRunnable JARをプログラムで作成しますか?

ボタンが 1 つある簡単なテスト プログラムがあります。ユーザーがボタンをクリックすると、プログラムは Runnable JAR を作成することになっています。Runnable JAR は、Firefox で google.com を開く単純なプログラムです。プログラムには3つのクラスがあります。


1) メイン.java


2) セレン.Java


3) TestGUI.java

私は 2 つの主要なクラスを持っています。TestGUI.javaGUIが表示されるようにマニフェストに追加しました。ユーザーがボタンをクリックしたら、プログラムで と で構成される Runnable JAR を作成する必要がMain.javaありSelenium.javaます。

ただし、エラーが発生null pointer exceptionしますint compilationResult = compiler.run(null, null, null, file1ToCompile, file2ToCompile);

これどうやってするの?

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

java - いくつかのインターフェイスを実装する新しいクラスを動的に作成してインスタンス化する方法は?

Javaで実行時に新しいクラスを作成することは可能ですか?

そのための手段は何ですか?反射?コンパイラ API?

できます

値を持って同じことを行うことはできA.classますか?

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

java - 注釈プロセッサの定数フィールドにアクセスする

クラスが定数フィールドを定義するとします。

また、アノテーション インターフェイスが次のように宣言されているとします。

最後に、アノテーションが次のように使用されているとします。

質問:CONSTANT_FIELDアノテーション プロセッサで、 の値を設定する際の使用からの要素を取得するにはどうすればよい@Somethingですか?


編集:質問自体に具体的な例を含めます。

次のように使用される注釈があります。

注釈プロセッサは、それがクラスRULE_statementで定義された定数であることを認識する必要があります。注釈のプロパティを設定してfor に直接BQLParserアクセスできれば、プロパティは不要になります。この注釈は、実際のアプリケーション内で何千回も使用され、常に定数の型を宣言するだけです。この質問を解決すると、アノテーションの使用法が単純化され、次のようになります。ElementBQLParser.RULE_statementrulerecognizerrecognizerrule

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

android - ビルド ターゲットを 16 に設定すると Proguard が失敗するが、API レベル 17 でコンパイルされる

4.1.2 (api 16) と 4.2.2 (api 17) でアプリを正常にデバッグして実行できます。ビルドが 17 に設定されているときに本番用にアプリケーションをエクスポートしようとすると正常に動作しますが、ターゲットを 17 に下げるといくつかのエラーが発生します。

警告: com.google.android.gms.common.images.a: クラス android.widget.TextView で参照されているメソッド 'android.graphics.drawable.Drawable[] getCompoundDrawablesRelative()' が見つかりません

なぜそのエラーがスローされるのか、または 1 つの API レベルでは機能するのに他の API レベルでは機能しないのはなぜですか?

ここに私のproguard構成ファイルがあります

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

java - .java ファイルをコンパイルし、そこから関数を実行します

わかりましたので、ユーザーが.javaファイルを書き込んで実行できるプログラムがあります(実行時....duh!!)。現在、ユーザーは 1 つの .java ファイルのみを編集できます (現時点では)。次に、.java ファイルをコンパイルして、.class ファイルにします。ファイルを実行するには、ユーザーがvoid main()関数を持っていることを期待しており、その関数を実行して実行するだけです。そのため、JTextArea、BufferedReader、BufferedWriterなどを使用して.javaファイルを編集可能にしました。ファイルをコンパイルするために書いたコードは次のとおりです。

このコードは、ファイルを .class ファイルにコンパイルします。そこからメイン関数を実行すると、機能しません。実際、成功の値は true です (true と表示されます)。これが完了したら、ユーザーは「実行」ボタンを押し、これを使用して関数を実行します。

Script script = new Script(); script.main();

何らかの理由で、スクリプトが更新されません。スクリプトが変更される前に書かれたものと同じものを実行します....ファイルは期待どおりに書かれていますが、スクリプトは次回プログラムが起動されたときにのみ何らかの「更新」を行います。(これをスタンドアロンとして試したことはありませんが、Netbeans である IDE で更新されます)。

この問題の解決策が必要なだけでなく、何が行われているのかについての説明も必要です。何が間違っているのか、なぜ間違っているのか、それを修正するために何をする必要があるのか​​ を説明してください.

よろしく、
ラクシット