たとえば、JavaバイトコードがCと混在している可能性があります。JvmはJavaバイトコードを実行し、Cの部分がヒットした場合はOSに実行を切り替えます。これは技術的に可能か実践ですか?複数の言語を1つのバイナリにまとめることはできますか?
1
A
答えて
2
一般に、JVMを作成し、提供されたバイトコードを実行し(execve)、そのデータを交換するためにJNA/JNIの間でIPCを使用する別のスレッドで実行するか、または操作を行い、完了を待つCコードを書くことができます。
このアプローチを使用したいくつかのプロジェクト(Androidシステムの一部、Cloudera Impalaなど)を満たしましたが、コードは複雑すぎてほとんど追跡できません。それが正しく動作するようにするには、あまりにも多くの努力が必要でした。場合によっては、データシリアライゼーション(倹約、protobuf)と良いIPCと異なる技術を使用して2つのプロセスを実行するか、それらのうちの1つだけを使用する方が良い場合もあります。
まだ両方を実行する必要がある場合は、JNIでネイティブ関数を呼び出すJavaでシステムを構築することをお勧めします。
関連する問題
- 1. ファイルに複数言語のストップワードを含むことはできますか?
- 2. 複数のプロジェクトを1つのjarにまとめることはできますか?
- 3. アンドロイドで複数のアプリを1つにすることはできますか?
- 4. オフサイトルールを持つ言語で、すべての言語構成をファーストクラスにすることはできますか?
- 5. drupal 8の言語に応じて複数のキャッシュエントリを持つことはできますか?
- 6. GroovyとGroovy ++は2つの言語か1つの言語ですか?
- 7. 複数の言語コードを1つの言語コードにマッピングして、1つのファイルに翻訳できる方法はありますか?
- 8. 言語検出を行うための辞書は複数の言語でどこにありますか?
- 9. Powershellでは、複数の関数を1つのスクリプトファイルに書き込むことをお勧めしますか?
- 10. requireJs/TypeScriptでは、複数のクラスを1つのモジュールにまとめますか?
- 11. 複数のポートを1つのプログラムで開くことはできますか?
- 12. 1つの行から複数の行を1つの行にまとめる
- 13. 1つの画像の複数のパッチを1つのミニバッチにまとめることについて
- 14. 1つのボットで複数の言語をサポートする
- 15. 複数のGoogleApiClientを1つのアクティビティに含めることはできますか?
- 16. 複数のDKIM txtレコードを1つのドメインに含めることはできますか?
- 17. 1つのアプリケーションで異なる言語を組み合わせることはできますか?
- 18. これらの2つのJOOQクエリを1つにまとめることはできますか?
- 19. 複数のParallel.ForEachをC#で1つにまとめる
- 20. 複数のウィジェットをQtで1つにまとめる
- 21. Jqueryで複数のアクションを1つにまとめる
- 22. 複数のmavenプロジェクトをEclipseで1つにまとめる
- 23. sysfsバイナリ属性は複数のデータページを返すことができますか?
- 24. 複数の目標値/変数を1つにまとめる
- 25. テキストファイル内の1つの単語を置き換えることはできますが、別の単語を置き換えることはできますか?
- 26. C言語の関数が複数の値を返すことはできますか?
- 27. モバイルアプリで複数の言語でテキストを表示することはできますか?
- 28. これら2つの正規表現を1つにまとめることはできますか?
- 29. 複数のベクトルを1つにまとめて合成する
- 30. 複数の行の値を1つの列にまとめる。
正確ではありません。 JNI(またはJNA)でネイティブコードを呼び出すことは可能ですが、C++です(C++経由でネイティブコードにリンクする必要があります)。 –
JVM用のCコンパイラである[GCC Bridge](http://www.renjin.org/blog/2016-01-31-introducing-gcc-bridge.html)があります。 –
@ElliottFrisch JNI/JNAもC言語で動作します(IIRC、JNAはC言語でのみ動作します)。 –