2011-01-22 13 views
0

JavaファイルをJVMで実行しているときに、このファイルを使用してJavaファイルを変更できますか?Javaファイルを変更する

例: 私はabc.javaを実行します。このプログラムではテキストエリアがあり、テキストエリアのテキストをabc.javaに貼り付けて変更を保存したいと考えています。出来ますか?

+2

javaファイルはJVMには入れられませんが、Javaバイトコードは実行されません。 – qrtt1

答えて

0

(更新質問に対する新しい回答)

「このプログラムで私は、テキストエリアにいると私はabc.javaにテキスト領域からテキストを貼り付けると、変更を保存します。」

これは奇妙なループ、自己修正のJavaコードのようですか?

はい、私はラルフにそれが悪い考えかもしれないことに同意するが、確かに、nrobeyの道具は行く方法だろうと述べている。

1

JVMはクラスファイル(.class)を実行し、Java( .java)ファイルは実行しません。 * .javaファイルを* .classファイルに "変換"するには、それをfirsでコンパイルする必要があります。

だから、それはcompleatlyにinteressedされていないため、*の.javaファイルは、どのような方法でJVMをinfuentません変更。

だからこそ全体の答え のあなたがプログラムの開発(.javaファイルを書き込むことができます( .class)は、自身のソースファイル(.java)を変更します(例えば、ユーザー入力によって文字列を変更する)。コンパイルすると( .class)、新しいコンパイル済みのフォーム。 しかしこれはあなたが欲しいものではありません!この狂ったアイデアがうまくいくことを証明するためだけに、この種のソフトウェアを書いています。

とにかく、ファイルやデータベースにデータを保存する方法が必要です。 (ファイル処理のための、そしてtutorialのためのjava.ioパッケージを見てください)。

1

いいえ、おそらく実行時にクラスを動的に定義する必要があります。もしそうなら、あなたはGroovyのような動的言語を選ぶことができます。

3

3つのステップ:あなたは、テキストファイルを変更するのと同じように

  1. があなたの.javaファイルを変更します。

  2. は、ClassLoaderを使用して、新鮮にコンパイルされたクラスのインスタンスを生成しjavax.tools compilation tools

  3. を使用して、すでに実行中のJVM内からその.javaファイルをコンパイルします。

関連する問題