Die Programmiersprache, mit der die Programme entwickelt werden, die auf den [Application Servern|Application Server] [deployed|Deployment] werden. Java-Programme können auch standalone ausgeführt werden, brauchen also nicht notwendigerweise einen Application Server. Im Business Umfeld werden komplexe Anwendungen jedoch fast immer auf Application Servern betrieben, da hier ein permanenter Betrieb und das dynamische Deployment und Undeployment einzelner Komponenten möglich ist. !!!Java Beispiel Ein einfaches Java-Programm, das die Zeichenkette "Hello World!" auf der Kommandozeile ausgibt, sieht wie folgt aus: {{{ public class MyClass { public static void main(String[] args) { System.out.println("Hello World!"); } } }}} !!!Java Virtual Machine Sourcen Die Sourcen der Version 6.0 gibts unter [http://download.java.net/jdk6/source/]. !Certificate von Web-Seite im Keystore installieren Mit folgender Klasse kann ein Zertifikat einer HTTPS-Web-Seite im Keystore der lokalen Java-Installation hinzugefügt werden, sodass dieser Seite immer vertraut wird. [Java/InstallCert.class] {{{ java InstallCert <address>:<port> }}} Source Code: [Java/InstallCert.java] !!!Proxy Konfigurieren Beim Starten der virtuellen Maschine können Parameter für das Verwenden eines Proxys übergeben werden: {{{ java -DproxyHost=<host> -DproxyPort=<port> }}} Oder die System-Proxy-Einstellungen verwenden: {{{ System.setProperty("java.net.useSystemProxies", "true"); Proxy proxy = ProxySelector.getDefault().select(new URI("http://intersult.com/")).get(0); }}} !!!Java Debug Options {{{ -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y }}} !!!SSL-Zertifikat Für HTTPS- und allgemein SSL-Verbindungen werden Zertifikate (Trusted Certificate) verwendet. Mit der Kommandozeile ist dies durch das Kommando keytool (%JAVA_HOME%/bin) mögich. !!!HTTPS-Zertifikate Der Keystore muss angegeben werden, eine Datei in der die Zertifikate gespeichert werden. Der Default-Keystore, der von Java benutzt wird, lautet %JAVA_HOME%\jre\lib\security\cacerts, das Default-Passwort lautet changeit. ||Aufgabe||Befehl |Auflisten|keytool -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit -list |Importieren|keytool -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit -import -file <filename> !!StartCom-Zertifikate StartCom ist bei den meisten neuen Browsern bereits enthalten, bei Java jedoch noch nicht. Kann durch folgende Kommandos hinzugefügt werden: {{{ keytool -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit -import -alias startcom.ca -file ca.pem -trustcacerts keytool -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit -import -alias startcom.ca.sub -file sub.class1.server.ca.pem -trustcacerts }}} Es handelt sich um zwei Zerfitikate in der Key-Chain. Die Dateien ca.pem und sub.class1.server.ca.pem können von [http://www.startcom.org/] besorgt werden: * [http://www.startssl.com/certs/ca.crt] * [http://www.startssl.com/certs/sub.class1.server.ca.crt] !!!Speicher [Java] benutzt nur begrenzt Speicher. Falls eine Anwendung mehr Speicher braucht, muss dieser manuell erhöht werden. Insbesondere ist davon der sogenannte PermGen-Space betroffen, Speicher der dauerhaft belegt wird: {{{ -Xmx512M -XX:MaxPermSize=256M }}} Zusätzlich kann das Entladen von Java-Klassen aktiviert werden, sowie das Aufräumen des PermGen-Speichers: {{{ -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled }}} Darüber kann das Verwenden des neuen Garbage-Kollektors noch Vorteile bringen: {{{ -XX:+UseConcMarkSweepGC }}} Also alles zusammen: {{{ -Xmx512M -XX:MaxPermSize=256M -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+UseConcMarkSweepGC }}}