Netbeans: jar Erstellung mit abhängigen library jar Dateien

Geschrieben von everflux am August 25th, 2009

Netbeans hat – zum Glück – neuerdings Maven Support. Das macht insbesondere die Anpassung des Build Prozesses wesentlich einfacher. Dazu kommt, dass Maven Kenntnisse nicht nur bei Netbeans Usern verbreitet sind, und so bessere Interoperabilität erzielt wird.
Hat man jedoch kein Maven Projekt, sondern das „klassische“ ant basierte Chaos Buildsystem, können Anpassungen schonmal komplizierter werden.

In diesem Fall ging es darum, dass mit Netbeans /ant produzierte Artefakte als einzelne JAR Datei verteilbar sein sollten. D.h. alle Bibliotheken bzw. Library JAR Files sollten in einem einzelnen, ausführbaren JAR landen. Weiterlesen »

Java 6u15: Oracle Branding

Geschrieben von everflux am August 18th, 2009

Langsam wird es sichtbar – der Kauf von Sun Microsystems durch Oracle. „Etwas mehr rot“ – das ist zumindest was optisch auffällt.

sun-oracle-java

Hier noch das bekannte orange aus einem Dialog:

sun-java

Chromium Browser: Schneller Entwickeln!

Geschrieben von everflux am August 1st, 2009

Welche IDE man bevorzugt, darüber kann man sicherlich vortrefflich streiten. Genauso übrigens auch über Webbrowser. Doch eins ist klar: Bei der Entwicklung zählt jede gesparte Sekunde. Gerade in Webanwendungen wird man nicht um manuelles Testen und Ausprobieren herumkommen. Ich habe gemerkt, dass man mit dem Firefox (Firebug, Webdeveloper Toolbar, etc. pp) wunderbar Debugging betreiben kann. Das Tooling ist in meinen Augen ungeschlagen. Weiterlesen »

Netbeans 6.7 release

Geschrieben von everflux am Juni 29th, 2009

Netbeans 6.7 ist als finale Version verfügbar. Auch wenn auf der Netbeans Homepage noch der RC beworben wird, führt der Download schon auf die endgültige Version. (So ganz fertig ist das zwar noch nicht, der Rest soll dann aber über das Update Center nachgereicht werden.)

Die Neuerungen sind vor allem „Cloud“ (Kenai) Integration, bessere CI Integration (Hudson z.B.) und Integration mit Issuetrackern. (Bei einem Commit können dann direkt Issues geschlossen werden.) Aber auch die Unterstützung für verschiedene Sprachen und Frameworks (PHP, Rails, Groovy, Grails, …) wurde stark verbessert. Details finden sich auf der Übersichtsseite zum Netbeans 6.7 Release und in den Release Notes zu Netbeans 6.7, wer Netbeans noch garnicht kennt kann einen Blick auf die Features werfen.

Und meine Liebslingsneuerung: Dateien können nun inklsusive Dateiendung umbenannt werden….

Gnome Notify mit Java…

Geschrieben von everflux am Juni 18th, 2009

Unter Gnome gibt es die Möglichkeit Benachrichtigungen für den Nutzer über eine einheitliche Benachrichtigungsinfrastruktur anzuzeigen. Speziell in Ubuntu Jaunty wurden einige Programme, z.B. Pidgin modifiziert um von den Möglichkeiten des „notify“ Frameworks Gebrauch zu machen.
Die „notify“ Implementierung unter Gnome und Ubuntu bietet dabei Benachrichtigungsdienste über das D-Bus Protokoll von freedesktop.org an und stellt diese daher einmal per D-Bus und einmal über die „libnotify“ an.
Möchte man sich diese Dienste zu nutze machen, stehen daher prinzipiell die Wege über D-Bus, libnotify zur Verfügung. Aufgrund der Einfachheitheit kann prinzipiell auch ein Kommandozeilenprogramm aufgerufen werden, dass über libnotify Benachrichtigungen nativ absetzt. Da dies der einfachste Weg ist – und grundsätzlich unabhängig von Java funktioniert – stelle ich dies zunächst vor.
Zuerst gilt es libnotify-bin zu installieren, das Programm ermöglicht nun per notify-send Benachrichtigungen abzusenden:
sudo apt-get install libnotify-bin
Eine kurze Hilfe zu notify-send gibt es per –help:
notify-send --help
Und so kann dann ein Beispielaufruf aussehen:
notify-send "JavaOne 2009" "JavaOne - all screens of your life. (except iPhone currently)"
gnome-notify-image

Um mittels Java Benachrichtigungen zu versenden stehen nun die bereits erwähnten Möglichkeiten über Java D-Bus (funktioniert dann bei KDE und Gnome) oder über die Java-Gnome Bindings zur Verfügung. Diese laufen dann jedoch auch nur unter Gnome.
Da ich die Java D-Bus Bindings nicht kompilieren konnte, und seit dem 2.6. dank Serkan Kaba auch in Java-Gnome die libnotify Notification Bindings enthalten sind, habe ich diese näher betrachtet.

Erst in dem kommenden Release von Gnome-Java werden die neuen libnotify Java Bindings enthalten sein, wer nicht warten möchte, wird per Bazaar einen Checkout von http://research.operationaldynamics.com/bzr/java-gnome/mainline/ vornehmen müssen.

Folgende Abhängigkeiten sollten ggf. erfüllt werden – z.B. per apt-get:
junit libgtk2.0-dev libglade2-dev libgtksourceview2.0-dev libglib-dev
Danach kann man dann auschecken und bauen:
bzr checkout bzr://research.operationaldynamics.com/bzr/java-gnome/mainline
cd mainline/
./configure
make

Und hier war dann bei mir erstmal Schluss. Trotz aller Abhängigkeiten war leider keine Übersetzung möglich. Theoretisch hätte es so weitergehen sollen:

in /tmp finden sich dann die Ergebnisse:
tmp/gtk-4.0.jar
tmp/libgtkjni-4.0.11.so

Ohne lokale Installation lassen sich diese Artefakte bereits nutzen – dafür muss lediglich der Classpath angepasst werden.
Eine mitgelieferte einfache Demo könnte folgendermaßen ausgeführt werden, wenn man sich noch im von Bazaar ausgecheckten Verzeichnis befindet:
make demo

bzw:
javac -classpath tmp/gtk-4.0.jar -d tmp/tests doc/examples/button/ExamplePressMe.java
java -classpath tmp/gtk-4.0.jar:tmp/tests button.ExamplePressMe

Last – but not least – kann auch über JNA https://jna.dev.java.net/ libnotify verwendet werden. JNA bietet ohne den „Umweg“ über JNI die Möglichkeit auf native Bibliotheken zuzugreifen.
Hier gab ich vorerst auf, da ich mir nur eine feste Zeit für das Projekt „notify und Java“ nehmen wollte. JNA ist derzeit für mich der vielversprechendste Ansatz, doch dafür müssen die Java Interfaces zum nativen Code noch erstellt werden. Ein Hilfsmittel dazu ist das noch recht junge „jnaerator“ , doch ließ sich dies aufgrund einiger Bugs zum Testzeitpunkt leider nicht einsetzen.

Und so – finally – die Lösung, die funktioniert: Einfach notify-send aufrufen.

JavaOne 2009

Geschrieben von everflux am Juni 17th, 2009

Zurück von der JavaOne 2009 – und jetzt möchten alle wissen „wie war es“. „Anders als erwartet“. Die großen Ankündigungen fehlten mir dann doch etwas – vom Hocker gehauen haben mich diesmal mehr die Partys und socialising als die General Sessions.

Auch dem Pavillion habe ich dieses Jahr deutlich mehr Zeit als im letzten eingeräumt, und so eine Menge interessanter Gespräche geführt. Starkes Augenmerk habe ich auf Tipps und Erfahrungsberichte zum Thema User-Group-Building gerichtet, doch auch OpenSolaris und VirtualBox bekamen verdiente Aufmerksamkeit. Java selbst war in so fern weniger in meinem Fokus als das „drumherum“. Auch die Neuerungen die Sun für den „Sun certified Java Programmer plus“ einführen möchte, konnte ich eingehend anschauen. Hierzu kann ich nur sagen: Klasse Idee, ich bin gespannt wie die Umsetzung wird.

Dass sich auch ein Talk der CommunityOne mit „Ubuntu in the clouds“ beschäftigte, in dem Ubuntu One und die weitere Strategie von Canonical für Ubuntu und Cloudcomputing erörtert wurde fand ich sehr angenehm. Das zeigt, dass Sun sich hier wirklich offen gibt. (Hier könnte sich der OpenSolaris Produktmanager auch noch abgucken OpenSolaris security updates zur freien Verfügung zu stellen, und schon könnte OpenSolaris eine interessante Alternative zu Ubuntu auch für den tatsächlichen Einsatz werden.)

Schade, dass es Netbeans nicht zur JavaOne mit einem 6.7 Release geschafft hat – aber lieber einen RC als einen Flickenteppich.

Für alle an den Sessions interessierten: Die JavaOne 2009 Slides sind bei Sun online einsehbar, die aufgezeichneten Sessions folgen vermutlich in Kürze.

Wer Lust hat, beim die Münsteraner Java User Group beim Java Stammtisch zu besuchen sei hiermit herzlich dazu eingeladen.

Canoo Webtest: NullPointerException durch JavaScript

Geschrieben von everflux am Mai 15th, 2009

Canoo Webtest bietet seit einiger Zeit auch (begrenzte) Unterstützung für JavaScript. Das ist gerade zum Testen von Web 2.0 Anwendungen interessant, kann jedoch auch zu sehr merkwürdigen Fehlern führen.

In meinem Fall quittierte Webtest die Arbeit mit der hilfreichen Meldung
com.gargoylesoftware.htmlunit.ScriptException: Wrapped java.lang.NullPointerException
Weiterlesen »

Canoo Webtest: GUI monitor deaktivieren

Geschrieben von everflux am Mai 14th, 2009

Canoo Webtest ist ein auf ant und Groovy basierendes Framework zum automatisierten Testen von Webanwendungen. Anders als beispielsweise bei Selenium wird HTMLUnit als „Browser“ verwendet.

Die Dokumentation von Webtest läßt jedoch trotz der zeitlichen Reife des Projektes an einigen Stellen zu wünschen übrig. Hier kann ein Blick in „webtest.xml“ sowie in „resources/build/WebTestReport.reference.xml“ im Installationsverzeichnis von Webtest etwas inspirieren. Weiterlesen »

Java logging: Netbeans, Eclipse und java.util.logging im Einsatz

Geschrieben von everflux am April 14th, 2009

Seit Java 1.4 gibt es das Paket java.util.logging, mit dessen Hilfe das Logging standardisiert wurde. Ich möchte an dieser Stelle jeder Wertung außen vor lassend einmal vorstellen, wie mithilfe der Java Logging API die Entwicklung in Netbeans und Eclipse (und anderen Entwicklungsumgebungen) erleichtert werden kann.

Insbesondere die Kombination von jUnit Tests und verschiedenen Logleveln bzw. Loghandlern kann das Leben eines Entwicklers drastisch vereinfachen und oft auch einen Debugger überflüssig machen. Weiterlesen »

Google Appengine: Java Cloud Anwendungen

Geschrieben von everflux am April 8th, 2009

Google hat heute angekündigt, dass die Google Appengine nun Java als Sprache unterstützt. Wie bereits lange spekuliert, ist also nun Google mit seinem Cloud Angebot in der Lage Java Anwendungen zu hosten.
Wer nun seine (web-)anwendungen bei Google hosten möchte, findet hier einen Überblick über die Entwicklerdokumentation.

Für Persistenz werden JDO und JPA unterstützt, die zugrundeliegende Java Virtual Machine (JVM) soll Java 6 unterstützen. Erstaunlich: Hier scheint nicht, wie oft spekuliert, Dalvic sondern wirklich eine (Sun?) JVM zum Einsatz zu kommen. Ich hatte eigentlich erst zur JavaOne 2009 damit gerechnet, dass eine entsprechende Ankündigung kommt. Vermutlich sah sich Google in Anbetracht des Wettkampfes um die „Cloud“ zur Eile genötigt. Weiterlesen »


http://everflux.de/
Copyright © 2007, 2008 everflux. Alle Rechte vorbehalten. All rights reserved.