LXCコンテナのbusyboxにJava JDKをインストールする - java/lang/NoClassDefFoundError: java/lang/Object

LXCコンテナのbusyboxにJava JDKをインストールする - java/lang/NoClassDefFoundError: java/lang/Object

私が開発しているWebアプリケーションでは、ユーザーはコンパイルして実行するために必要なJavaコードをアップロードできます。セキュリティ上の理由でLXCコンテナの中に入れたいと思い、空間上の理由でビジーボックスになりたいです。だから私はbusyboxコンテナを正常に作成しました。

lxc-create -n my-box -t busybox

起動し、よく実行されます。その後、jdk-8u31-linux-i586.rpmを以下からダウンロードしました。ここそしてranはrpm -i jdk-8u31-linux-i586.rpm出力を返しませんが、/usr/java/jdk1.8.0_31すべてが良く見える結果を生成します。

ただし、runに移動すると/usr/java/jdk1.8.0_31/bin./javac -versionのようになります。

/usr/java/jdk1.8.0_31/bin # ./javac -version
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

私はこれがclasspathまたはjava_homeが正しく設定されていないためだと思って1つを作成しました/etc/profile

JAVA_HOME=/usr/java/jdk1.8.0_31
CLASSPATH=/usr/java/jdk1.8.0_31/lib
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME
export CLASSPATH
export PATH

これはうまくいきます。変数をエコーすると、私が設定した値があります。しかし、問題はまだ残っていますjavacjavaまったく同じ出力を持ちます。

私がここで何を見逃しているのでしょうか?

ホストシステムはUbuntu Server 14.04です。また、同じ結果でx64バージョンを試しました。

ベストアンサー1

問題は同じであることがわかりましたここ:Javaインストールのlibフォルダとjre / libフォルダから* .packファイルを抽出する必要があります。unpack200, *.pack ファイルを .jar ファイルに解凍するプログラムは busybox では使用できませんが、java では提供されます。

おすすめ記事