2017-05-29 7 views

答えて

1

メイド私のデスクトップの空のフォルダ。
空のフォルダにC:¥Program Files¥Java¥jre1.8.0_72¥bin¥java.exeをコピーしました。
私はそれをコンパイルした場所からHelloWorld.classをコピーしました。
現在のディレクトリが新しいフォルダに設定された新しいcmdを起動しました。
それらはすべてなくなっていたことを確認するチェック
for /f "delims==" %a in ('set') do set %a=


このような出力を生成
set



enter image description here

すべての環境変数を取り除くために、以下に型指定された
現在、クラスパスやパスなどの環境変数が設定されていないことを示しています。
だから今、私は次のように入力し、(期待される結果)を参照してください。

enter image description here

それが唯一の1Kのjava.exeのための.classファイルおよび203Kのためだから、かなりきちんとだこと。

本当に簡単でしょうか?

Nah。私は別のタックを試すつもりだと思う。私は、Windowsレジストリを介してjava.dllと.jarファイルを取得している必要があります。

私の読んでいるところでは、JDKに埋め込まれたjreにはレジストリ参照が含まれていないことがわかりました。 HelloWorld.classファイルとともに、私のコンピュータのインストールからフラッシュドライブにjreをコピーします。

just a stock jre from the jdk and HelloWorld.class

その後、私はNO Javaがまったくインストールしたコンピュータ上でのHelloWorldを実行してみるつもりです:フラッシュドライブ上の結果は次のようになります。そして、ここではその結果がどのように見えるかです:かなりクールだ

It worked!

を。レジストリの不満はなく、Javaはインストールされていませんが、うまくいきました!それでも、186 MBです。

私は、次のステップは、物を取り除き、それがもはや機能しなくなるまでにどれだけ遠くまで行くことができると思うかと思います。

まず、java.exe以外のすべてを削除しますが、ディレクトリ構造だけを残します。面白い

まあ:

it didn't find java.dll AND it expected a directory entry

私はそれがすべての後に、レジストリをチェックしないと思います。私はjava.dllを戻してやり直すべきだと思う。だからここに今フラッシュドライブ上のJRE \ binに何があるかです:

Error: could not open 'D:\jre\lib\amd64\jvm.cfg'

だから私は、少なくとも、あまりにもそのファイルが必要になります。

just java.exe and java.dll

そして、ここではその結果です。興味深いことに、それはとにかくAMD64ディレクトリにある唯一のものです:

jvm.cfg

そして、これは私たちに次のステップを与える...

Error: missing 'server' JVM at 'D:\jre\bin\server\jvm.dll'

わかりましたので、同じようにうまくことを追加します。さて、jre \ bin \ verify.dllが必要でした。

それからjre \ bin \ zip.dllが必要でした。

さて、Javaの/ langは/オブジェクトを必要とされるので、私は我々が必要と推測JRE \ libに\ rt.jarの

と思い、何?それは十分だった:

enter image description here

だから、総JRE最小限のフットプリントは:とたん186メガバイト(195043328バイト)

:69.1メガバイト(72519711バイト)

は、JRE総フットプリントであることを比較しません努力の価値があるようです。次回は、jdkのjreをその中のすべてを使って使用するつもりです。

+0

'rt.jar'が指定されていませんか? 'java.lang.String'にクラス定義がありません。 –

+0

私は知っています。金田も私を驚かせました。レジストリエントリなどで取得できますか?

+0

最終的なメモ。私はなぜjavaがserver \ java.dllを望んでいるのか知っていると思う。これはjvm.cfgに記載されています:-server KNOWN –

関連する問題