2016-10-23 5 views
1

私はかなり混乱している質問があります。java - JDKなしでクライアント側でコードをコンパイル

私はそれがJ AVA Runtime E nviromentとJ AVA D evelopement Kの違いを認識しています。

ToolProvider.getSystemJavaCompiler()メソッドを使用してコード内からJavaコードをコンパイルするプログラムを作成しています。

私のクライアントにJDKがインストールされていない場合、クライアント側からコードをコンパイルできないと答えました。私の主な質問は、どのように私はそれを行うことができますか?自分のプログラムを実行するためにクライアントにJDKをインストールする必要はありません。

ありがとうございます!

+0

仮想マシンでosをJREでのみ実行し、コンパイルしたプログラムを実行しよう – gkiko

+1

違いがわかっている場合、JREがユーザーにとって十分ではないと思われる点は何ですか? –

+0

なぜあなたはJDKなしでユーザのコンピュータ上でコードをコンパイルできると思いますか? – SLaks

答えて

0

あなたのシステムでコンパイルし、対応するJavaソースファイルのクラスファイルを誰にでも配布する必要があります。

このクラスファイルにはJDKは必要ありませんが、そのクラスファイルを実行するにはそのシステムにJREをインストールする必要があります。

+1

'getSystemJavaCompiler'ではありません。質問を読む。 – SLaks

+0

編集を見て... – NonameSL

+0

それ以前は違っていました。 :) しかし、あなたがJDKに付属しているjavacを持っていない限り、簡単な言葉でコードをコンパイルすることはできません。 あなたの質問が解決されることを願っております。 –

0

コードをコンパイルする必要がある場合は、コンパイラが必要です。そのため、必要なコンパイラがないと思われる場合は、バンドルするだけです。

私は本当にそれを含むJARファイルを見つけて、あなたのコードと一緒にそれをバンドルするために、厳密に言えば、おそらく可能だけれども、私は、標準javacコンパイラをバンドルする方法を知っていると言うことはできません。しかし、このようなソリューションがどれほど堅牢であるかは考えられません。

ご要望に応じて、標準javacは必要ありません。そこには多かれ少なかれ高度な機能を備えたバイトコード生成ライブラリがたくさんあります。私は個人的な経験がないものをお勧めしたくはありませんが、例にはByte BuddyまたはASMが含まれています。おそらくABCLも使用できます。

関連する問題