5

JVMなしで動作するJava実装があるかどうか疑問に思っています。私が興味を持っている理由は、単に興味があり、「軽量」のJava実装(すべてのSunライブラリが接続されていない)があるかどうか疑問に思っていたからです。

JavaをC++に埋め込むことにも興味がありますが、JVMをC++に埋め込むのはかなりばかげているようです。C ++アプリのJava言語機能の一部を利用したいだけですが、すべての軽薄なJavaAPIを利用したくはありません。

編集:

私が得た多くの答えから、私は明確にする必要があることがわかります...

最近、JavaScriptを使用するnode.jsアプリケーションの開発に取り掛かりました。istelfのJavaScriptは言語仕様であり、しばらくの間はDOMやwindow.openなどに自動的に付属していません。JavaScriptではなくJavaを除いて、Googleのv8に似たものがあるかどうか疑問に思います。結局、Hello Worldアプリを作成できなくてもかまいません。ただ、v8またはSpiderMonkeyを使用してC++アプリケーションにJavaScriptを埋め込む方法でJavaをC++アプリケーションに埋め込むことができるようにしたいと考えています。それができれば、コンソール出力をC / C ++で実装し、その実装をJavaから呼び出し可能にすることができます。

4

5 に答える 5

6

API(標準ライブラリ)なしでJava VMだけが必要ですか?

JREはJVM(仮想マシン)と標準ライブラリで構成されています。JVMなしでJava実装を見つけることができるかどうか疑問です... Javaソースコードをネイティブコードにコンパイルするコンパイラを見つけることができます(見てください)GCJ)、ただしVMなしのJava実装ではありません。

このウィキペディアのページを見て、いくつかの代替Java実装を確認してください。

于 2012-11-25T20:34:53.957 に答える
2

GCJ (Java用のGNUコンパイラ)がありますが、OpenJDKがオープンソースであったため、プロジェクトは非推奨になりました。

于 2012-11-25T20:46:48.927 に答える
1

JOPなどの小型デバイスで使用するために設計された軽量のJavaプロセッサがあります

于 2012-11-25T20:33:47.530 に答える
1

他の人が示唆しているように、「JVM」は、クラスのロード、「バイトコード」の解釈、およびストレージの管理方法を知っているメカニズムです。JVMでクラスやその他の基本的なデータ構造を表すためにいくつかのクラス(String、Classなど)が必要なことを除いて、本質的にjava.lang...のものは含まれていません。

結果として、JVMのないJavaは、意味のないビットの集まりにすぎません。

インタプリタを必要としない/必要としないコンパイル済みバージョンのJavaがあります(ただし、適度にコンパクトなインタプリタは非常に簡単に構築できます)。プリミティブクラスローダーとある種のストレージ管理は依然として必要ですが、クラスのロードは単純に保つことができ、短命のアプリ(または特別な制限があるアプリ)の場合、ストレージマネージャーはガベージコレクションを行う必要はありません。

pstantonが示唆しているように、小型デバイスに適した「軽量」Java(または「Javaのような」)実装があります。

于 2012-11-25T20:46:59.330 に答える
1

私見、あなたはそれが本当に欲しいものを再検討する必要があります。

Javaランタイムは、2つの主要なコンポーネントで構成されています

  • コードを実行するJVM
  • 付属の標準ライブラリ。

あなたはJavaを使いたいと提案しますが、これらがなければ実際には何も残っていません。

たとえば、StringはJDKのクラスであるため、ライブラリなしで「helloworld」プログラムを作成することもできません。

于 2012-11-25T20:53:40.200 に答える