在我正在开发的Web应用程序中,用户将能够上载Java代码,而我需要对其进行编译和运行。出于安全原因,我希望在LXC容器中进行操作,并且出于占用空间的原因,我希望将其作为忙箱。因此,我成功创建了一个busybox容器:
lxc-create -n my-box -t busybox
运行正常。然后,我从此处下载jdk-8u31-linux-i586.rpm并运行rpm -i jdk-8u31-linux-i586.rpm
,该命令未返回任何输出,但创建后/usr/java/jdk1.8.0_31
看起来都不错。
但是,当我去/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设置不正确,所以我创建了一个/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
当我回显变量时,它们具有我为其设置的值,因此效果很好。但是,问题javac
仍然存在。java
具有完全相同的输出。
我在这里想念什么?
主机系统是Ubuntu Server 14.04。我也尝试过x64版本,结果相同。
事实证明,问题与这里相同:我仍然必须从java安装中的lib和jre / lib文件夹中解压缩* .pack文件。unpack200
,用于将* .pack文件解压缩为.jar文件的程序在busybox中不可用,但是Java附带了该程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句