Schlagwort-Archiv: java

Oracle Java Package erstellen unter Debian

Problem:
Oracles Java wird benötigt, ist aber in keinem Repo verfügbar.

Lösung:
Ich habe hier schon einen anderen Beitrag zur manuellen Installation von Java verfasst, dieser ist hiermit ungültig und sollte NICHT MEHR VERWENDET WERDEN!!

Um die Dinge der Installation rückgängig zu machen, empfiehlt sich die Ausführung folgender Befehle als root

Achtung, hier wird die 64bit Version genutzt! Für 32bit müssen die Pfade (amd64 –> i386) entsprechend angepasst werden!


update-alternatives --remove java /usr/lib/jvm/java-7-oracle/bin/java
update-alternatives --remove javac /usr/lib/jvm/java-7-oracle/bin/javac
update-alternatives --remove javaws /usr/lib/jvm/java-7-oracle/bin/javaws
update-alternatives --remove javadoc /usr/lib/jvm/java-7-oracle/bin/javadoc
update-alternatives --remove javah /usr/lib/jvm/java-7-oracle/bin/javah
update-alternatives --remove javap /usr/lib/jvm/java-7-oracle/bin/javap
update-alternatives --remove java_vm /usr/lib/jvm/java-7-oracle/jre/bin/java_vm
update-alternatives --remove jvisualvm /usr/lib/jvm/java-7-oracle/bin/jvisualvm
update-alternatives --remove policytool /usr/lib/jvm/java-7-oracle/jre/bin/policytool
update-alternatives --remove ControlPanel /usr/lib/jvm/java-7-oracle/jre/bin/ControlPanel
update-alternatives --remove iceweasel-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove firefox-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove mozilla-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove midbrowser-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove iceape-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove xulrunner-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so
update-alternatives --remove xulrunner-addons-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so

Im Anschluss sollte das aktuellste, verfügbare Paket java-package installiert werden

apt-get install java-package

Ich habe die Debian Backports eingebunden (Howto) und habe daher zusätzlich folgenden apt-get Schalter genutzt.
-t wheezy-backport
Nun ist das Tool make-jpkg bereitgestellt, mit welchem künftig das Installationspaket / Update generiert werden wird! =)

Zuerst lädt mal auf der Java-Webseite das aktuelle Paket für die verwendete Architekture (i386/amd64) herunter. Dann führt man als User (!! Wichtig, als root wirds mit Fehler enden !!)

make-jpkg jdk-7u51-linux-x64.tar.gz

aus.

Am Ende erhält man daraus ein Paket, in meinem Fall oracle-java7-jdk_7u51_amd64.deb
Dieses kann als root wie gewohnt installiert werden!

dpkg -i oracle-java7-jdk_7u51_amd64.deb

Im Anschluss sollte man sich vergewissern, welche Applikationen denn für die Bereitstellung von „java“ noch installiert sind. Diese kann man eigentlich alle Deinstallieren sofern keine Abhängkeit zu anderen Paketen besteht.
update-alternatives --list java zeigt die installiert-/registrierten Binaries. Welchem zu deinstallierendem Debian Paket die jeweilige Binary gehört, kann mit „dpkg -S“ rausgefunden werden.

Hier ein Beispiel:

user@host:~$ update-alternatives --list java
/usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java
user@host:~$ dpkg -S /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java
oracle-java7-jdk: /usr/lib/jvm/jdk-7-oracle-x64/jre/bin/java

Ergebnis: oracle-java7-jdk wäre nun ein Ergebnis – aber das ist in diesem Fall auch gut so! 😉

Tomcat – Redirect auf eine Webapp

Problem:
Ich habe einen Tomcat laufen und im Ordner webapp gibt es nur die eine Webapp. Um die Webapp aufzurufen, muss man den genauen Namen kennen. Ich hätte gerne eine automatische Weiterleitung auf die Webapp sobald ich den Tomcat aufrufe.

Lösung:
Ich erstelle in Webapp einen Ordner ROOT und lege eine index.jsp hinein, welche mich direkt zur Webapp schickt.

mkdir /pfad/zum/tomcat/webapps/ROOT
touch index.jsp

In die index.jsp schreibe ich folgende Zeilen

<% response.sendRedirect("/meineWebapp/login.jsp"); %>

Nach dem Speichern funktioniert die Umleitung direkt, es ist kein Neustart des Tomcats notwendig!

JVisualvm lässt sich nicht starten

Problem:
Ich habe eine SSH Sitzung mit X11-Forwarding. xclock und xeyes können problemlos gestartet werden. Oracles „jvisualvm“ lässt sich aber nicht starten.

Lösung:
Im Userverzeichnis erstellt jvisualvm ein Verzeichnis „.visualvm“. Darin findet man mitunter auch ein Logfile welches beim Starten erzeugt wird.
Hier erwartet mich die wichtige Information:

java.lang.UnsatisfiedLinkError: /usr/lib/jvm/jdk1.7.0_09/jre/lib/amd64/xawt/libmawt.so: libXtst.so.6: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden

Es fehlt also eine Library um jvisualvm zu öffnen. Mit dem folgenden Befehl installier ich die Bibliothek

apt-get install libxtst6

Nun kann jvisualvm gestartet werden.

jvisualvm kann wohl auch auf die Konsole loggen, dazu muss es wie folgt gestartet werden

jvisualvm -J-Dnetbeans.logger.console=true

Java 7 Installation unter Debian

DEPRECATED!
use this instead!

Problem:
Oracles Java ist für Debian in keinem Repository verfügbar.

Lösung:
Runterladen und selbst einbinden.
Die Debiankonforme Lösung findet sich hier! Dort findet sich auch die Anweisung zum Entfernen der Links (siehe unten!)

Achtung, hier wird die 64bit Version genutzt! Für 32bit muss die richtige Java Datei runtergeladen werden und die Pfade entsprechend angepasst werden!

1. Downloaden des JDKs, Entpacken und SymLink erstellen

cd /tmp
wget download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-x64.tar.gz
mkdir /usr/lib/jvm && cd /usr/lib/jvm
tar xvzf /tmp/jdk-7-linux-x64.tar.gz
ln -s jdk1.7.0_07 java-7-oracle

Der SymLink wird erstellt, um bei einem Java Update nur den Link aktualisieren zu müssen.

2. Einbinden via update-alternatives
Einbinden von „java“

update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-oracle/bin/java 1500

Einbinden von „javac“

update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-oracle/bin/javac 1500

Einbinden von „javaws“

update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/java-7-oracle/bin/javaws 1500

Einbinden von „javadoc“

update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/java-7-oracle/bin/javadoc 1500

Einbinden von „javah“

update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java-7-oracle/bin/javah 1500

Einbinden von „javap“

update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java-7-oracle/bin/javap 1500

Einbinden von „java_vm“

update-alternatives --install /usr/bin/java_vm java_vm /usr/lib/jvm/java-7-oracle/jre/bin/java_vm 1500

Einbinden von „jvisualvm“

update-alternatives --install /usr/bin/jvisualvm jvisualvm /usr/lib/jvm/java-7-oracle/bin/jvisualvm 1500

Einbinden von „policytool“

update-alternatives --install /usr/bin/policytool policytool /usr/lib/jvm/java-7-oracle/jre/bin/policytool 1500

Einbinden von „ControlPanel“

update-alternatives --install /usr/bin/ControlPanel ControlPanel /usr/lib/jvm/java-7-oracle/jre/bin/ControlPanel 1500

3. Einbinden der Browserplugins
Einbinden von „iceweasel-javaplugin.so“

update-alternatives --install /usr/lib/iceweasel/plugins/libjavaplugin.so iceweasel-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so 1500

Einbinden von „firefox-javaplugin.so“

update-alternatives --install /usr/lib/firefox/plugins/libjavaplugin.so firefox-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so 1500

Einbinden von „mozilla-javaplugin.so“

update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so 1500

Einbinden von „midbrowser-javaplugin.so“

update-alternatives --install /usr/lib/midbrowser/plugins/libjavaplugin.so midbrowser-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so 1500

Einbinden von „iceape-javaplugin.so“

update-alternatives --install /usr/lib/iceape/plugins/libjavaplugin.so iceape-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so 1500

Einbinden von „xulrunner-javaplugin.so“

update-alternatives --install /usr/lib/xulrunner/plugins/libjavaplugin.so xulrunner-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so 1500

Einbinden von „xulrunner-addons-javaplugin.so“

update-alternatives --install /usr/lib/xulrunner-addons/plugins/libjavaplugin.so xulrunner-addons-javaplugin.so /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so 1500

4. JAVA_HOME und JRE_HOME
Die .bashrc sollte zuguter letzt noch durch folgende Zeilen erweitert werden

export JAVA_HOME="/usr/lib/jvm/java-7-oracle"
export JRE_HOME="/usr/lib/jvm/java-7-oracle/jre"

c3p0 connection pool monitoren

Problem:

Eine Tomcat-Webapp mit Hibernate soll auf connectionleaks überprüft werden.

Lösung:

Man kann mit jvisual eine jmx verbindung zum tomcat aufbauen und über jvisual das mbeanplugin installieren.

1. JMX im Tomcat aktivieren

http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html#Enabling_JMX_Remote

2. MBean installieren und JVisual nutzen (step by step instructions)

https://mifosforge.jira.com/wiki/display/MIFOS/Connection+Pool+Monitoring