問題タブ [runtime-compilation]

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 に答える
947 参照

java - Eclipse プラグインの実行時に Java クラスをコンパイルする

私はここで非常に厄介な状況にいます。.java ファイルを .class ファイル (または jar ファイル) に「コンパイル」する必要がある「Eclipse プラグイン」を開発しています。

次のようなことを行うために、 Java Compiler APIを使用しようとしています。

問題は、呼び出す_sjfm = _javaCompiler.getStandardFileManager(null, null, null);と NullPointerException が発生することです。これは、JDK を実行していないときに「予期される」動作であるためです (このバグ レポートを参照してください) 。

このStackOverflow の投稿は何らかの形で私を助けてくれましたが、発行可能でなければならない Eclipse プラグイン内から Java ファイルをコンパイルする正しい方法は何でしょうか?

  1. 代替の「コンパイラ」を使用し、jar を含めて使用するだけですか?
  2. tools.jar (JDK フォルダーにあります) をプラグインに含め、動的にロードし、そこからコンパイルしますか?
  3. 私が考えることができない他の解決策

あなたは何をお勧めします ?

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

c# - CSharpCodeProvider.CompileAssemblyFromFile のエラーの最大量

CSharpCodeProviderアプリのインスタントプラグインをコンパイルするために使用します。

現在、ファイルをコンパイルしようとすることは可能です。これは見た目は良いですが、多くのエラーが生成されます。たとえば、バイナリ ファイルに貼り付けられた C# コードなどです。で扱われる多くの文字がありますerror CS1056: Unexpected character

この動作は予期されたものですが、このような「悪意のある」ファイルのコンパイル プロセスには非常に時間がかかります。

私が妥当だと思う解決策の 1 つは、エラーの数を制限することです。その後、エラーがCSharpCodeProvider.CompileAssemblyFromFile返されます。

そのような制限を設定することは可能ですか?

回避できるのであれば、そもそもファイルを非常に注意深く検査したくありません。

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

java - ホットスポットの -XX:-CITime フラグの出力はどこにありますか?

ホットスポット JVM に「-XX:-CITime」フラグ (ドキュメント) を使用しようとしていますが、いくつか質問があります。

  1. コンパイル時間の表示を有効にしたい場合、'-XX:-CITime' (マイナス) または '-XX:+CITime' (プラス) と入力しますか?

  2. コンパイル時間情報はどこに出力されますか?

  3. 出力はどのように見えるはずですか?

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

java - サービスの進行中の機能として Java で実行時にコード片のメモリ使用量を測定する

テキストとして受け取り、Java Compiler API を使用して実行時にコンパイルする関数の CPU およびメモリ空間での効率を測定できるようにする必要があるプロジェクトがあります。

実行時間を測定するために ThreadMXBean を使用しています。より良い/より正確な方法はありますか?

私が必要としているのは、使用されているメモリを測定する方法についてのアドバイスです。理想的には、すべての割り当てとそのサイズについて知りたいです。しかし、コードで使用される正確なバイト数で問題ありません。

すべてのコードを自動的にコンパイル、テスト、実行、評価する必要があります。したがって、プロファイラーを使用して自分自身を調べることはオプションではありません。あなたが私に指摘する可能性のある提案、可能な方法、リソース、またはツールは大歓迎です.

その点を明確にする必要があります。これは 1 回限りのプロセスではありません。これは、実装された機能をオンザフライで受信、コンパイル、分析、スコアリングする Web アプリの主要なサービスです。ピックでは、数百の同時ジョブが進行していると予想されます。外部ツールを使用して 1 回または手動で監視するプロセスは、私の目標ではありません。

私は繰り返します:私はこれをしたいですas a service。アプリをテストしたり、プロファイリングしたりするためのものではありません。

私は噛まない(またはSOにいるので反対票を投じない)ので、深刻な提案は賛成票を獲得します。

ステータスの更新: このプロジェクトは、メモリ使用量の測定を確実に行う信頼できる方法がないため、保留中です。私は現在、これも可能である JVM の世界以外の言語/フレームワークを検討しています。それでも、このプロジェクトのために積極的にアドバイスを求めたり、勉強したりしています。

0 投票する
0 に答える
74 参照

java - Android アプリケーションで文字列表現からメモリ内のクラスをコンパイルすることは可能ですか?

Java では、実行時に Java クラスをその場で (メモリ内で) 文字列表現からコンパイルできることを知っています。その後、そのようなクラスをアプリケーションでインスタンス化できます。たとえば、これをサポートするライブラリには、BeanShell と commons-jci があります。

Android アプリケーションで同じことを行うことは可能ですか?

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

java - 外部ライブラリを使用せずにJavaでオンザフライでクラスをコンパイルすることは可能ですか?

Java Compiler API を使用すると、実行時にクラスをコンパイルし、その出力 (.class ファイル) をファイル システムに書き込むことができるように思えます。ただし、インメモリ コンパイルはサポートされていません。これは正しいです ?または、この API を使用して (文字列から) メモリ内のクラスをコンパイルし、後でそのようなクラスをインスタンス化することは可能ですか?

(クラスをファイルシステムにコンパイルし、後でカスタムクラスローダーでロードできることは知っていますが、ファイルシステムを通過せずにメモリ内でコンパイルできるかどうか疑問に思っています)。

J2SE のみを使用してメモリ コンパイルでこれを行う別の代替メカニズムはありますか? BeanShell (私がやりたいことができるライブラリ) は、その Web ページで、「将来のある時点」で J2SE に含まれる可能性があると述べていますが、そのJSRのステータスは「休止中」です (それが何を意味するかは関係ありません)。 .

アップデート:

理想的には、これが J2SE のみで実行できるかどうか (または、Java 8 などでこれを実行できる J2SE の機能拡張が期待されるかどうか) を知りたいです。ただし、JDK のインストールを必要とする方法についてのヒントも歓迎します (Evgeniy に感謝します)。

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

cordova - (オンデマンド) 動的コンパイル Handlebars.js で動作する Cordova/PhoneGap

Handlebars.js テンプレート エンジンを使用して JavaScript/Cordova アプリを構築します。アプリケーションのビルドには、コンパイル済みのテンプレートが付属しています (通常どおり、www/* フォルダーにあります)。私の上司は、アプリを再コンパイルして市場 (Play ストア / Itunes など) に公開することなく、いくつかのテンプレートを少し変更したいと考えています。

この種の柔軟性をアーカイブするにはどうすればよいでしょうか?

アプリが起動したら、更新を確認し、新しい Handlebars ファイルをダウンロードして再コンパイルできます。わかる?将来ダウンロードしないようにファイルに保存することはできますか? 誰にも同様の問題/シナリオがありますか?

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

c# - クラス型をランタイム コンパイル コードに渡す C#

外部ファイルを読み取ってコンパイルしようとしています (現在は文字列定数になっています)。

外部コードで基本的なプリミティブを使用できますが、怒らずにクラスタイプを渡す方法がわからないようです-これが私が持っているものです(使用行を除く)

助けていただければ幸いです