Em um aplicativo da web que estou desenvolvendo, os usuários poderão fazer o upload de código java e eu precisarei compilar e executar isso. Por razões de segurança, gostaria de fazê-lo dentro de um contêiner LXC e, por motivos de pegada, gostaria que fosse um busybox. Então, criei um contêiner do busybox com sucesso com:
lxc-create -n my-box -t busybox
Está tudo funcionando bem. Então, eu baixei o jdk-8u31-linux-i586.rpm de aqui e executou rpm -i jdk-8u31-linux-i586.rpm
, que não retornou nenhum resultado, mas criou /usr/java/jdk1.8.0_31
, o que parece bom.
No entanto, quando vou para /usr/java/jdk1.8.0_31/bin
e execuo ./javac -version
, obtenho:
/usr/java/jdk1.8.0_31/bin # ./javac -version
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
Eu percebi que isso pode ser porque o classpath ou o java_home não são a configuração correta, então criei um /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
Isso funciona bem, quando faço eco das variáveis, eles têm os valores que defini para eles. No entanto, o problema com javac
persiste. java
tem exatamente o mesmo resultado.
O que eu senti falta aqui?
O sistema host é o Ubuntu Server 14.04. Eu tentei também a versão x64, com o mesmo resultado.