Java è un linguaggio di programmazione / macchina virtuale indipendente dalla piattaforma.
In questo tutorial, installeremo l'implementazione OpenJDK di Java 8 su una macchina Debian 8 (Jessie) e il processo di installazione di DCEVM (Dynamic Code Evolution VM) - un'estensione che consente una ridefinizione runtime illimitata delle classi con l'aiuto di Hotswap Agente .
Prerequisiti
- Una nuova installazione di Debian 8 (Jessie)
Passaggio 1: aggiunta di Jessie-backport alla configurazione apt
Aggiungi le seguenti righe a /etc/apt/sources.list
# jessie-backports allows newer software to be installed
deb http://http.us.debian.org/debian/ jessie-backports main
deb-src http://http.us.debian.org/debian/ jessie-backports main
Passaggio 2: aggiorna apt
Aggiorna apt per aggiornare i pacchetti con i backport.
apt-get update
Passaggio 3: installare Java
Installa Java dall'elenco dei pacchetti di backport.
apt-get install -t jessie-backports openjdk-8-jre openjdk-8-jre-headless
Installa DCEVM
Se necessario, è possibile installare DCEVM openjdk-8-jre-dcevm
che consente di ricaricare il codice Java durante l'esecuzione. Si noti che DCEVM non è necessario per eseguire applicazioni Java.
apt-get install openjdk-8-jre-dcevm
Passaggio 4: verificare l'installazione
Utilizzare il comando seguente per verificare che Java sia installato:
java -version
L'output dovrebbe essere simile al seguente:
root@debian:~# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-1~bpo8+1-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
Verifica che DCEVM sia installato
Se hai installato DCEVM, usa il comando seguente per verificare l'installazione:
java -dcevm -version
L'output dovrebbe essere simile al seguente:
root@debian:~# java -dcevm -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-1~bpo8+1-b11)
Dynamic Code Evolution 64-Bit Server VM (build 25.71-b01-dcevm-light, mixed mode)
Come usare DCEVM
Per utilizzare DCEVM, è necessario utilizzare il summenzionato Hotswap Agent. Scaricalo da Github e quindi esegui la tua .jar
applicazione come segue:
java -dcevm -javaagent:hotswap-agent-1.1.0-SNAPSHOT.jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:54321 -jar Your.jar
Ciò vincolerà la porta di trasporto hotswap 127.0.0.1:54321
, a cui uno sviluppatore può connettersi tramite un tunnel SSH. È possibile associare la porta di trasporto a un indirizzo IP esterno, ma è un grave problema di sicurezza perché consente l'esecuzione di codice arbitrario. Utilizzare il firewall Vultr se si decide di collegarsi a un indirizzo IP esterno.
Nota: in questo esempio si presuppone che il jar dell'agente Hotswap si trovi nella stessa directory e sia denominato hotswap-agent-1.1.0-SNAPSHOT.jar
.