Java

Aus XmasWiki
Wechseln zu: Navigation, Suche

Allgemeines

Java installieren

  • Unter http://www.oracle.com/technetwork/java/javase/downloads aktuelles jdk runterladen
  • Installieren
  • Pfad setzen, dazu
    • Systemsteuerung öffnen
    • System und Sicherheit
    • System
    • Einstellungen ändern (neben Computername)
    • Tab - Erweitert
    • Umgebungsvariablen
      • Bereich Systemvariablen
        • Neu -> Variable=JAVA_HOME und Pfad des Installationsverzeichnisses als Wert=C:\Program Files\Java\jdk1.7.0_13
        • Bearbeiten (Patch) -> Wert der Variablen erweitern durch: ;%JAVA_HOME%\bin
  • jetzt ausführen -> cmd -> javac -version eingeben und prüfen ob dann die korrekte Version angezeigt wird


Standardcode

  • Main Methode

public static void main (String args[]) {..}

  • If-else

if (true) {
  ..
} else {
  ..
}

  • Zeilenumbruch: \r\n

Javamail

WebServices

Sammlung von öffentlichen/frei verfügbaren Webservices: http://www.webservicex.net/
Ab Java 6.x besteht die Möglichkeit aus einer WSDL Datei Javaklassen zu geniereren um auf Webservices zuzugreifen. Dies wird mittels des Aufrufes wsimport gemacht. Darüber kann entweder eine lokale Datei oder eine Webadresse aufgerufen werden.

wsimport "D:\Eigene Dateien\Webcenter\WebService\wsdl11.xml"

oder remote:

wsimport "http://server:port/pfad/wsdl11.xml"

Falls eine Authentifizierung vorhanden ist sollte dies mit Username & Passwort in der Adresse aufrufbar sein:

wsimport "http://username:passwort@server:port/pfad/wsdl11.xml"

Daraus werden dann Javaklassen *.class generiert, die man einbinden kann.

Erstellung eines JavaClients

Zertifikate / SSL

TrustStore anzeigen

System.getProperty("javax.net.ssl.trustStore")

Debug bei Zertifikatsverbindungen

  • folgende Parameter sind bei Anwendungen mit SSL Zertifkaten möglich um die Zertifikatsverbindung zu debuggen:

java -Djavax.net.debug=all MyApp
java -Djavax.net.debug=ssl MyApp
java -Djavax.net.debug=ssl:handshake:trustmanager MyApp

oder falls man dies nicht mit dem Java Aufruf machen will gehts so über Properties:

System.setProperty("javax.net.debug","ssl:handshake:trustmanager");

oder so wenn man Properties erstellt hat:

props.put("javax.net.debug","ssl:handshake:trustmanager");

Falls man Entwicklungsumgebungen wie Eclipse oder JDeveloper nutzt kann man diese (nur in der Form -Djavax.net.debug=all) bei Run Configurations im Bereich Arguments bei VM arguments (in Eclipse) oder Manage Run Configurations (edit default) im Feld Java Options (bei JDeveloper) eintragen. Weitere Infos unter http://java.sun.com/developer/technicalArticles/Security/secureinternet2/

keytool / Zertifikatsverwaltung

Für das Verwalten der Zertifikate und deren Speicherung ist das Tool keytool.exe vorgesehen. Dies ist im JRE/JDK von Oracle enthalten und befindet sich im JAVA_HOME\bin Ordner. Fürs aktuelle JRE6 Stable Release kann man die originale Dokumentation hier finden: http://download.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html

Zertifikate anzeigen

C:\Program Files\Java\jre6\lib\security>keytool -list -keystore "C:\Program Files\Java\jre6\lib\security\cacerts"

Zertifikat hinzufügen

Adresse im Web aufrufen und mittels Firefox das Zertifikat exportieren

  • linksklick auf Adresszeile -> weitere Informationen
  • weiter auf Sicherheit und Zertifikat anzeigen
  • Details und dann exportieren als X.509 (PEM)
  • Nun dieses exportierte Zertifikat importieren.
c:\Program Files\Java\jdk1.6.0_22\bin\keytool -import -alias imap_cer -file mail.google.com.pem -keystore cacerts -storepass changeit

Zertifikat exportieren

Anhand dieses Beispielcodes sieht man wie ein Zertifikat aus dem Standard JDK Zertifikatsspeicher (keystore=cacerts) exportiert wird. Dabei muss die Datei in der gespeichert wird, als leere Datei (equifaxsecureca.cer) vorliegen, ansonsten bekommt man einen "FileNotFound" Error.

D:\Eigene Dateien\Webcenter>keytool -export -keystore "C:\Program Files\Java\jre6\lib\security\cacerts" -alias equifaxsecureca -file equifaxsecureca.cer -storepass changeit

Zertifikat importieren

Hier anhand des Zertifikats was von Google Mail benutzt wird. Dies wird in diesem Beispiel in einen Weblogic Server importiert.

keytool -import -alias equifaxsecureca -file equifaxsecureca.cer -keystore "D:\fm11gr1\wlserver_10.3\server\lib\DemoTrust.jks" -storepass DemoTrustKeyStorePassPhrase

Zertifikatsstore importieren

Für den kompletten Import eines Zertifikatsstore benötigt man folgenden Aufruf:

keytool -importkeystore -srckeystore "C:\Program Files\Java\jre6\lib\security\cacerts" -destkeystore "C:\oracle\Middleware\wlserver_10.3\server\lib\DemoTrust.jks" -srcstoretype JKS -deststoretype JKS -srcstorepass changeit -deststorepass DemoTrustKeyStorePassPhrase

Einstellungen

  • mehr Speicher: -Xmx256m

Webstart

  • Java-Projekt in Eclipse erstellen
    • Export -> Java -> Runnable JAR file
      • Launch Configuration -> Auswahl der Mainmethode/Launch Configuration
      • Export destination -> Auswahl des Verzeichnisses und Benennung der Jar-Datei -> Finish
  • Keystore anlegen
    • keytool -genkey -keystore keystore -alias <user>
      • Alle Eingaben machen dabei der Einfachheit halber Keystore und Userpasswort gleich setzen. Als Landeskennzeichen "DE".
  • Erstellte Jar-Datei signieren
    • jarsigner -keystore keystore hello_world.jar <user>
      • Passwort entsprechend eingeben
  • jnlp-Datei erstellen
    • Diese sollte folgendese Format besitzen:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://localhost/webstart" href="hello_world.jnlp">
 <information>
   <title>Hello World</title>
   <vendor>domain.de</vendor>
   <homepage href="http://domain.de"/>
   <description>Hello World</description>
   <offline-allowed/>
 </information>
 <security>
    <all-permissions/>
 </security>
 <application-desc main-class="de.domain.hello_world.Main">
    <argument>-nosplash</argument>
 </application-desc>
 <resources>
  <j2se version="1.4+" />
  <jar href="hello_world.jar"/>
 </resources>
</jnlp>

  • html-Datei erstellen
    • Inhalt sollte sein: <a href="hello_world.jnlp">Launch the application</a>

Links:

Eclipse

serialVersionUID Warning deaktivieren

Window -> Preferences -> JAVA -> Compiler -> Errors/Warnings -> Potential programming problems -> Serializable class without serialVersionUID -> Ignore