Posts Tagged ‘java’

Compiling OpenJDK 7 with Ubuntu 12.04 64bit

Samstag, Mai 12th, 2012

When Sun Microsystems was still the head of Java, the wise decision to OpenSource it was made. (Thank you, whoever was behind it…) OpenJDK as of today can be built without any binary plugs, so it can be considered as really OpenSource and free. To exercise the liberty of building your own, runnable Java it takes amazingly low effort – that is the topic if this short blog entry.

While consumers and corporate IT seems to prefer Windows as primary operating system, developers tend to choose a unixoid OS: Linux (Debian, Arch, Ubuntu), Apple OSX or OpenSolaris. OpenSolaris lacks a current open source desktop distribution Ubuntu was chosen for this example. To add some complexity Canonical went with a multi-arch setup since Ubuntu 11.04 which looks like being extended/change on Ubuntu 12.04. (This is described on the MultiArch wiki page. We will come back to the problems caused by the transition later in the article.)

In order to retrieve the OpenJDK sources mercurial has to be installed:

sudo apt-get install mercurial

OpenJDK contains many sub-projects, in order to be able to manage the sources separately, the hgforest extension to mercurial is used. Installing it is a little more effort:

  • Clone the hgforest sources: hg clone https://bitbucket.org/pmezard/hgforest-crew/overview/ "$HOME/hgforest"
  • Add the hgforest extension to your mercurial setup by editing ~/.hgrcand adding
    [extensions]
    forest=~/hgforest/forest.py
  • Please adjust the path accordingly, if you did not clone it to your home directory

As a last preparational step build time library dependencies have to be installed:

sudo apt-get install gawk g++ libcups2-dev libasound2-dev libfreetype6-dev libx11-dev libxt-dev libxext-dev libxrender-dev libxtst-dev libfontconfig1-dev

Now it is time to retrieve the OpenJDK7 sources – use the „7u“ repository in order to retrieve the latest update release sources:

hg fclone http://hg.openjdk.java.net/jdk7u/jdk7u openjdk7u

The time depends on your internet connection of course, but it should not take longer than a couple of minutes with a consumer class broadband connection. (Calculate about 1GB of hard disc space for the sources and build output.)

Please make sure that you have a Java compiler installed, it is needed during building OpenJDK. (Of course you can use OpenJDK itself, once it has beend build.) For this tutorial a current Java JDK has been placed at /usr/lib/jvm/jdk1.7.0

After preparation is finished we can build OpenJDK on Ubuntu:

cd openjdk7u
unset JAVA_HOME
export LANG=C
export ALT_BOOTDIR="/usr/lib/jvm/jdk1.7.0"
export ALLOW_DOWNLOADS=true
export EXTRA_LIBS=/usr/lib/x86_64-linux-gnu/libasound.so.2
make sanity && time make

The "ALLOW_DOWNLOADS" parameter is used by the build system to retrieve additional libraries which are required for building and may be missing in the system wide installation. Note the "EXTRA_LIBS" environment entry: This is due to building on a 64 bit Ubuntu using the MultiArch setup. The OpenJDK build system itself does not detect where the alsa sound libraries are installed on this particular setup.

After a while (about 20 minutes, depending on your machine), you should see this:

#-- Build times ----------
Target all_product_build
Start 2012-05-12 11:40:32
End 2012-05-12 12:04:01
00:01:27 corba
00:10:15 hotspot
00:00:18 jaxp
00:00:27 jaxws
00:10:30 jdk
00:00:32 langtools
00:23:29 TOTAL
-------------------------
real 23m30.532s
user 32m10.625s
sys 2m24.617s

The OpenJDK build is created in build/linux-amd64 – you can run your Java from there:

./build/linux-amd64/bin/java -version
openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build 1.7.0-internal-tkruse_2012_05_11_20_23-b00)
OpenJDK 64-Bit Server VM (build 23.0-b21, mixed mode)

Bonus: OpenJDK 8 is building accordingly. Just substitute the mercurial clone path http://hg.openjdk.java.net/jdk7u/jdk7u/  with http://hg.openjdk.java.net/jdk8/jdk8/

The build result should look like this:
-- Build times ----------
Target all_product_build
Start 2012-05-12 11:10:35
End   2012-05-12 11:35:00
00:01:30 corba
00:10:30 hotspot
00:00:19 jaxp
00:00:24 jaxws
00:11:08 jdk
00:00:34 langtools
00:24:25 TOTAL
-------------------------

And you can run your own Java 8 now:
./build/linux-amd64/bin/java -version
openjdk version "1.8.0-internal"
OpenJDK Runtime Environment (build 1.8.0-internal-tkruse_2012_05_12_11_10-b00)
OpenJDK 64-Bit Server VM (build 24.0-b09, mixed mode)

As a side note: If you are using Java Native Access (JNA) on an Ubuntu 12.04 64bit machine and you have problems with libraries not being detected properly, update to JNA 3.4, fixes have been incorporate there.

 

Vortrag „node.js“ mit Stefan Tilkov am 22.2.2012

Samstag, Februar 4th, 2012

Am 22 Feb 2012 haben wir Stefan Tilkov als Speaker zum Thema „node.js“ bei uns.

Node.js ist ein Framework zur Umsetzung von Netzwerkapplikationen in JavaScript, dessen Unterstützung für Funktionen höherer Ordnung perfekt zu einem Programmiermodell passt, das Non-blocking I/O in den Mittelpunkt stellt. In dieser Session wird Node.js und das umgebende Ökosystem vorgestellt und gezeigt, wie sich auf dieser Basis hochperformante Clients und Server implementieren lassen.

Vortragender: Stefan Tilkov

Stefan Tilkov ist Geschäftsführer der innoQ Deutschland GmbH und beschäftigt sich seit Anfang der 90er Jahre mit Architekturen für starkverteilte, große Systeme und Anwendungslandschaften. Seine technologischen Schwerpunkte haben sich im Laufe der Zeit von C/C++ und DCE, C++/CORBA, Java/CORBA über J2EE, MDA und Web Services hin zu SOA, REST und Ruby verschoben.

Bitte meldet Euch unter https://www.xing.com/events/node-js-einfuhrung-865138 an, damit wir fuer den Event die Anzahl der Teilnehmer planen koennen.

Die viadee unternehmensberatung GmbH unterstuetzt uns freundlicherweise mit Raeumlichkeiten und Verpflegung. Der Veranstaltungsort ist daher:

viadee Unternehmensberatung GmbH
Anton-Bruchausen-Straße 8
48147 Münster

Einlass ist um 18 Uhr.

Bitte gebt die Infos auch an Kollegen und Freunde weiter!

 

Veranstaltungen 2012

Samstag, Dezember 31st, 2011

Kurzübersicht über alle Vorträge, welche 2012 bei der Java Usergroup Münster angeboten werden. Zusätzlich haben wir einen regelmäßigen Stammtisch, den wir über die Mailingliste und den Blog hier ankündigen. Alle Termine finden sich auch im Google Calendar der JUG Münster. Updates und Infos gibt es über die Mailing-Liste der JUG Münster.

Die Vorträge finden falls nicht anders angegeben bei der Viadee Unternehmensberatung statt. Einlass ist jeweils ab 18:00 Uhr und der Vortrag startet im Regelfall um 18:30 Uhr. Alle Termine sind vorläufig und können sich noch kurzfristig ändern – um Anmeldung über Xing bzw. Verifikation auf unserer Homepage wird gebeten.

NOVEMBER
Termin: noch nicht sicher – 14. November
Thema: „DevOps/jRuby“
Dozent: Andreas Simon, Michael Johann

DEZEMBER
Termin: 12.12.2012
Thema: „CDI 1.1“
Dozent: Lars Röwekamp

» More: Veranstaltungen 2012

 

Java7 Launch Event

Mittwoch, Juli 13th, 2011

Es ist geschafft, Java 7 wurde offiziell am 07.07.2011 von Oracle vorgestellt. Aus diesem Grund möchten wir zusammen mit/für Euch einen Launch Event veranstalten. Es wird Informationen über die neuen Features in Java7 geben, sowie hoffentlich viele anregende Diskussionen über alle Java relevanten Dinge.

Auch Oracle hat sich großzügig gezeigt und wird uns mit T-Shirts sponsoren.

Hier noch ein paar Informationen über den Event:

Ort: Produktivhaus Münster (CoWorking Space)

Weseler Straße 253a

48151 Münster

Datum: 22.07.2011

Uhrzeit: ab 18 Uhr

Wir würden Euch bitten sich für den Event via Xing anzumelden, den entsprechende Link findet Ihr hier.

Wer die Demos selbst ausprobieren moechte, findet hier das Archiv: java7-demo

 

JUG Münster Stammtisch: 18.5.

Donnerstag, Mai 12th, 2011

Der nächste Java Stammtisch der Java Usergroup Münster findet am 4.5. im Cuba Nova ab 18:30 Uhr statt. Eingeladen sind (wie immer alle) an Java, Softwareentwicklung, HTML5, Android, Webentwicklung und Projektmanagement interessierten Personen.

» More: JUG Münster Stammtisch: 18.5.

 

Java Testing best practice: Projekt Organisation

Freitag, Januar 21st, 2011

Im folgenden wird beschrieben, wie man sein Projekt so strukturieren kann, dass auf der einen Seite das Testen erleichtert wird, auf der anderen Seite die Tests vom produktiven Java Quellcode separiert werden. Das erleichtert zum Beispiel die Paketierung zur Auslieferung an Kunden, die lediglich den produktiven Quellcode erhalten sollen.

Bei einigen Entwicklungsumgebungen, wie z.B. Netbeans, ist bereits bei einem leeren Java Projekt eine Separierung von Test Quellcode und Java Quellcode vorgesehen: Es gibt einen Ordner für „Test Packages“ und einen für „Source Packages“. Im Dateisystem werden diese auf die Ordner „src“ und „test“ entsprechend abgebildet. Bei der Tastenausführung werden aus beiden Verzeichnissen die Quellen übersetzt und die Ergebnisse zusammen geführt. Bei dem von Netbeans standardmäßig erstellten Buildfile kann man auch von der Kommandozeile mittels „ant test“ die Tests ausführen, bei „ant jar“ wird eine JAR Datei (im „dist“ Verzeichnis) erstellt, die lediglich den produktiven Code enthält. » More: Java Testing best practice: Projekt Organisation

 

WJAX 2010: 15.-19. November

Montag, August 23rd, 2010

Die W-JAX ist die Konferenz für ganzheitliches technisches Know-how im Java- und Webumfeld. Das breite Themenspektrum der W-JAX bietet eine Fülle an Wissen, das benötigt wird, um komplexe Softwareentwicklungsprojekte effizienter und erfolgreicher zu realisieren. Es reicht von Java-Core-Themen über Entwicklungstechniken und Tools bis hin zu Architektur und agilen
Vorgehensweisen.
Neben Vorträgen zu technischen- und methodischen Themen gibt es auf der WJAX auch Gelegenheit zum Networking und Erfahrungsaustausch.

Das komplette Programmangebot ist unter www.jax.de ersichtlich.

 

SteelSeries Java Swing component library

Donnerstag, August 12th, 2010

Here we go again…

A few months ago i started a new project where i again focussed on gauges (i love that stuff). It took me some time because i only work on the project on my spare time (which is rare) but now i finished a first version of a little library that contains a lot of gauges for Java applications…

First of all i have to mention that this library was not meant to be a professional components library and should not be used on mission critical software. Means if you use the library it’s on your own risk !

I’ve never before created a component library and for me it was and is a great challenge to dive deeper into the Java universe…

But now let’s have some fun…

The library contains two general types of gauges, radial and linear ones and some little candy in the form of additional components like a Radar component etc.

I add some properties to the gauges that hopefuly will be useful for some of you.

Here is a short list of the most interesting features:

  • frameDesign (metal, shiny metal, blackmetal)
  • backgroundColor (dark gray, light gray, white, black, beige, red, green blue)
  • pointer/bar color (red, green, blue, yellow, orange)
  • a three colored track to visualize areas of special interest (e.g. a critical temperature range)
  • thresholdIndicator
  • blinking threshold led (red, green, blue, orange, yellow)
  • adjustable tickmarks
  • indicators for min. and max. measured values
  • auto reset to zero feature

It should be possible for you to create your own components out of these library and  if you’ll take a look at the source you will find components like Radial1Lcd, Radial2Lcd and Radial3Lcd where i used Netbeans matisse gui builder to create the component from the FrameCircular and DisplaySingle components.

So you should be able to check read the sourcecode of these components and see how i did it (the easiest way would be to use Netbeans to check the source).

But to give you a impression, let pictures speak… » More: SteelSeries Java Swing component library

 

Stammtisch: 4.8. im Cuba Nova

Dienstag, August 3rd, 2010

Der naechste Java Stammtisch findet am 4.8. im Cuba Nova ab 18:30 Uhr statt. Eingeladen sind wie immer alle an Java, Softwareentwicklung und Projektmanagement interessierten Personen.

Hinweis: Wir haben eine neue Mailingliste, wer per E-Mail auf dem Laufenden gehalten werden möchte, kann sich mit einer E-Mail an jug-join@list.jug-muenster.de eintragen. » More: Stammtisch: 4.8. im Cuba Nova

 

30.7.: Clojure Presentation with Alex Ott

Donnerstag, Juli 22nd, 2010

Clojure is a language running on the Java Virtual machine and gaining rapid popularity. Beeing a general-purpose language supporting interactive development that encourages a functional programming style, and simplifying multithreaded programming its usage is particularly promising in high concurrency/throughput environments. » More: 30.7.: Clojure Presentation with Alex Ott