Januar 19th, 2012 by Jens Hofschröer
Wer von Java aus ein anderes Programm starten möchte kann dies recht einfach über den Befehl Runtime.exec erledigen. Seit Java 1.5 gibt es die Klasse ProcessBuilder mit der die Manipulation der Parameter für den externen Prozess noch einfacher von der Hand geht. Da auch Runtime.exec den ProcessBuilder intern verwendet sollte dieser im eigenen Quelltext immer bevorzugt werden.
Interessant wird diese Funktionalität aber erst, wenn man von Java aus andere Konsolenanwendungen starten möchte. Also Programme die keine graphische Benutzeroberfläche haben und ihre Ausgaben in die so genannte “Konsole” schreiben. Unter Windows werden hier oft die Batchdateien verwendet, unter Linux sind es die Shellskripte. Read the rest of this entry »
Grundlagen, Java
Batchdatei,Codebeispiel,InputStream,Konsolenanwendung,MiniShell,Process,ProcessBuilder,Runtime.exec,Scanner,Shellskript,Thread
Dezember 22nd, 2011 by Jens Hofschröer
Erstellt man eine eigene Anwendung auf Basis der NetBeans Platform erstellt kommt man irgendwann unweigerlich an den Punkt das Resultat auch an die Endanwender verteilen zu wollen. Im Kontextmenü des Suiteprojekt liefert der Eintrag “Package as” alles was man dafür benötigt. Ein Problem gibt es nur, wenn man während der Entwicklung der eigenen Anwendung individuelle Argumente mit auf den Weg geben möchte. Im Debugger kann man hierfür ganz einfach die Variable run.args.extra in der project.properties nutzen. Leider werden diese Einstellungen nicht in eine Distribution übernommen. Read the rest of this entry »
Dezember 12th, 2011 by Jens Hofschröer
Die neue Version von NetBeans steht kurz vor der Veröffentlichung. Die passende Wiki-Seite mit den Neuerungen ist nun auch online. Am meisten freut mich, dass nun endlich eine “Organize Imports” Funktion direkt in NetBeans integriert sein wird. Read the rest of this entry »
Dezember 9th, 2011 by Jens Hofschröer
Seit der Version 1.5 kennt Java die so genannten Annotations. Die meisten Java Entwickler werden dieses Sprachkonstrukt nur als “Nutzer” erfahren. Jeder wird schon mal eine @Deprecated oder @SuppressWarnings Annotation genutzt oder zumindest gesehen haben. Unter bestimmten Voraussetzungen kann es aber durchaus interessant sein eigene Annotations zu schreiben. Read the rest of this entry »
Dezember 7th, 2011 by Oliver Trinnes
Hi, mein Name ist Oliver Trinnes und ich kam im Jahre 2009 aus dem hohen Norden (Hamburg) nach Aachen, um hier den dualen Studiengang Scientific Programming zusammen mit der Ausbildung zum mathematisch-technischen Softwareentwickler zu absolvieren. Seitdem arbeite ich zusammen mit weiteren Azubis und Jens Hofschröer in der Getriebeabteilung des Werkzeugmaschinenlabors der RWTH Aachen.
Während meiner Ausbildungszeit baute ich meine Fähigkeiten in der Java-Programmierung aus und setzte mich insbesondere mit der NetBeans IDE und RCP auseinander. Die neusten Entwicklungen meiner Kompetenzen bewegen sich buchstäblich im dreidimensionalen Raum. Für die Darstellungen unserer Simulationssoftware und nun auch für meine eigene Bachelorarbeit beschäftige ich mich intensiv mit Java OpenGL 3D-Programmierung.
Ein Auslandspraktikum als MaTSE-Azubi? Noch nie gehört!
Bis zum November 2011 hielt ich es für ausgeschlossen, während der MaTSE-Ausbildung bzw. des Studiums überhaupt ein Praktikum absolvieren zu können. Schließlich ist das ja das Besondere an dieser Ausbildung: Praxis und Theorie in Einem. Was will ich also noch mit einem Praktikum, wenn ich so sehr an meinen Betrieb gebunden bin? Darum kam ich auch nie auf die Idee, mich damit weiter zu beschäftigen. Bis ich von einem Kommilitonen gehört habe, dass jemand aus unserem Jahrgang nicht nur ein Praktikum, sondern sogar ein Auslandspraktikum absolviert hat. Read the rest of this entry »
Dezember 1st, 2011 by Jens Hofschröer
Es ist schon nicht einfach einen eigenen Processor für Annotations zu schreiben, wenn man etwas Fehlerbehandlung einbauen möchte. Aber noch “schwieriger” ist es diesen Processor im Debugger betrachten zu können. Das Problem ist, dass sich die IDE im Grunde genommen selber debuggen muss. Zur IDE hat man in den seltensten Fällen ein Projekt, zu dem man einfach Strg+F5 drücken könnte. Allerdings gelingt man mit einem einfach Trick sehr schnell an das gewünschte Ziel. Read the rest of this entry »
November 29th, 2011 by Jens Hofschröer
Dokumentationen sind toll. Vorausgesetzt sie erzählen dir von sich aus, was du wissen willst oder musst. Beim Thema “Annotation Processing” habe ich noch keine wirklich gute Dokumentation gefunden. Viele Dinge muss man sich aus unterschiedlichen Stellen zusammen suchen oder mühsam aus den JavaDocs erraten. Das ganze auch noch in deutsch zu bekommen, kann man glaube ich sowieso vergessen. Umso schöner ist es, wenn man dann doch noch Mal etwas neues entdeckt. Read the rest of this entry »
November 22nd, 2011 by Jens Hofschröer
Ich bin im Moment auf einem Annotation-Trip. Die Dinger sind cool. Vor allem in Zusammenhang mit ihren Processor Implementierungen. NetBeans macht es in seinen neusten Versionen selbst vor. So cool die XML Layer Strukturen zur Laufzeit auch sind, so uncool sind sie in dem Quellen zu pflegen. Dank des LayerGeneratingProcessors ist es aber verdammt einfach geworden Annotations (die ja bekanntlich direkt im Quelltext bei den betroffenen Klassen stehen) selber zu schreiben, die die notwendigen Einträge in der layer.xml erstellen.
Ein ähnliches leidiges Thema wie die XML Layer sind Services, die man selber in einer Textdatei unter META-INF/services pflegen darf. Auch hier bietet NetBeans von eine Annotation samt Processor bereit um diese Einträge direkt im Quelltext zu schreiben: @ServiceProvider.
In einer NetBeans RCP Anwendung ohne weiteres nutzbar und sogar zu bevorzugendes Mittel. Allerdings wäre so etwas in einer eigenen Standard Java Anwendung auch cool. Ich hatte so etwas zwar auch schon mal selber geschrieben aber ganz so gut wie die NetBeans Implementierung war das dann doch nicht. Allerdings ist es relativ einfach möglich die Annotation von NetBeans in den eigenen Java SE Projekten zu nutzen: Read the rest of this entry »
November 10th, 2011 by Jens Hofschröer
Für eine NetBeans Rich Client Platform Anwendung ist es ein leichtes eine bestehende .jar-Datei in ein Modul zu kapseln. Das so genannte “Library Wrapper Module” steht im “New Project Wizard” zu Verfügung und man muss nur noch eine (oder mehrere) Java Archive auswählen, fertig. Den Rest erledigt die NetBeans IDE für uns. Das klappt prima, wenn man auch tatsächlich eine .jar-Datei hat, die von extern kommt oder “quasi nie” geändert wird.
Hat man jedoch ein bestehendes Java SE Projekt, welches man jetzt auch für NetBeans nutzen möchte, ist das nicht mehr ganz so einfach. Read the rest of this entry »
November 10th, 2011 by Jens Hofschröer
Ich hatte den Entwurf für einen eigenen Artikel schon begonnen. Aber Geertjan war diesmal schneller:
Annotation Processor for Main Popup Menus (Geertjan’s Blog).