Geschrieben von: tobbe in Java, Tools, tags: Error, Fehler, findbugs, free memory, heap size, heap space, HeapSize, Java, java lang object, lib, outofmemoryerror, Programmierung, university of maryland, Xmx Parameter
Hallo,
jeder Programmierer kennt das Problem, dass sich immer wieder Fehler einschleichen. Nur wie kommt man diesen schnell und effizient auf die Spur?
Heute schaute ich mir das Programm FindBugs von der University of Maryland einmal etwas genauer an und wurde schnell enttäuscht. Keines meiner etwas größeren Projekte wurde komplett gescannt. Während der Analyse hing sich das Programm mit 100% Auslastung auf – keine Fehlermeldung -> nichts.
Die Lösung des Problems erhielt ich durch Start des Programmes über die Konsole:
Dabei wurde folgende Exception ausgeworfen:
Exception in thread “AWT-EventQueue-0″ java.lang.OutOfMemoryError: Java heap space
Exception occurred during event dispatching:
java.lang.OutOfMemoryError: Java heap space
at java.lang.Object.clone(Native Method)
at sun.java2d.SunGraphics2D.clone(SunGraphics2D.java:430)
at sun.java2d.SunGraphics2D.create(SunGraphics2D.java:463)
at javax.swing.JComponent.paint(JComponent.java:958)
…
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Out of memory
Total memory: 66M
free memory: 0M
Lösung: Erhöhen des MaxHeap von Java (standardmäßig 64MB)
Um FindBugs mehr RAM zuzuweisen gehe wie folgt vor:
1.) Starte die Konsole und wechsel in das Libverzeichnis von FindBugs (z. Bsp.:
cd Users/xxx/Dektop/FindBugs/lib
2.) Starte das Programm über die Konsole mit folgendem Befehl
java -Xmx512m -jar findbugs.jar -home .
Erklärung:
- Xmx512m Maximum Heap Size auf 512 MB setzen
- home Homeverzeichnis von FileBugs
Das Programm sollte nun starten und auch größere Projekte ohne Probleme scannen.
Popularity: 23% [?]
Keine Kommentare »
Ein sehr gutes Tutorial für den Einsatz von Hibernate,direkt auf Netbeans zugeschnitten, findet man hier:
Popularity: 26% [?]
Keine Kommentare »
Geschrieben von: tobbe in Java, tags: Access, access denied, Datenbank, Fehlermeldung, Hibernate, Host, JUnit, localhost, Mac, MySQL, mysql-connector, Netbeans, Rechteverwaltung, Spring, Tomcat
Hallo,
diese und letzte Woche beschäftigte ich mich auf Arbeit ein wenig intensiver mit Netbeans, Hibernate, Spring und JUnit- Tests.
Nach einigen holprigen Starts und Einrichten des Tomcat/ MySQL- Servers, Erstellung des DB- Modells wollte ich mit NetBeans auf die Datenbank via Hibernate zugreifen. Lokal auf dem Mac konnte ich jedoch keine Verbindung herstellen:
“Access denied for user admin@localhost” war die Fehlermeldung. Der User war in der Datenbank angelegt, dass Passwort gesetzt- es hätte funktionieren müssen!
Nach einer Viertelstunde intensiver Fehlersuche gab ich es auf und versuchte das Gleiche mit einer MySQL Datenbank in der virtuellen Maschine. Hier klappte es mit dem selben Benutzer anstandslos.
Die böse Überraschung kam gestern als ich das war- File in einen anderen Tomcat einspielte und die Datenbank eingerichtet hatte.
Der Fehler trat wieder auf – es konnte keine Verbindung hergestellt werden.
Die Lösung des Ganzen:
In der Rechteverwaltung von MySQL stand bei mir unter Host “%” um eine Verbindung von jedem Host zuzulassen.
Nach Änderung in “localhost” funktionierte die Verbindung mit dem mysql-connector anstandlos.

Popularity: 28% [?]
Keine Kommentare »
Geschrieben von: tobbe in Java-Snippets, tags: Apple, Betriebssystem, class, cpu, Frameworks, getProperties, Inc, Java, JavaVM, library, Mac OS, Mac- System, path, runtime, sourcecode, sun, user, vendor
Letztens musste ich herausfinden auf welchem Betriebssystem mein Programm ausgeführt wird. Gelöst habe ich es durch Auslesen von System.getProperties().
Eine komplette Übersicht aller Variablen auf die durch diese Methode zugegriffen werden können erhaltet ihr über diesen Code.
Properties sysProperties = System.getProperties();
sysProperties.list(System.out);
// Auslesen eines einzelnen Wertes
System.out.println("Betriebssystem" + sysProperties.get("os.name"));
Auf einem Mac- System erscheint folgende Ausgabe:
– listing properties –
java.runtime.name=Java(TM) 2 Runtime Environment, Stand…
sun.boot.library.path=/System/Library/Frameworks/JavaVM.fra…
java.vm.version=1.5.0_16-133
awt.nativeDoubleBuffering=true
gopherProxySet=false
java.vm.vendor=Apple Inc.
java.vendor.url=http://www.apple.com/
path.separator=:
java.vm.name=Java HotSpot(TM) Client VM
file.encoding.pkg=sun.io
user.country=DE
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=unknown
java.vm.specification.name=Java Virtual Machine Specification
user.dir=/Users/tobbe/Documents/Geschaeft/Prod…
java.runtime.version=1.5.0_16-b06-284
java.awt.graphicsenv=apple.awt.CGraphicsEnvironment
java.endorsed.dirs=/System/Library/Frameworks/JavaVM.fra…
os.arch=i386
java.io.tmpdir=/tmp
line.separator=
java.vm.specification.vendor=Sun Microsystems Inc.
os.name=Mac OS X
sun.jnu.encoding=MacRoman
java.library.path=.:/Library/Java/Extensions:/System/Li…
java.specification.name=Java Platform API Specification
java.class.version=49.0
sun.management.compiler=HotSpot Client Compiler
os.version=10.5.5
http.nonProxyHosts=local|*.local|169.254/16|*.169.254/16
user.home=/Users/xxx
user.timezone=
java.awt.printerjob=apple.awt.CPrinterJob
file.encoding=MacRoman
java.specification.version=1.5
user.name=xxx
java.class.path=/Users/xxx/xxx/xxx/Prod…
java.vm.specification.version=1.0
sun.arch.data.model=32
java.home=/System/Library/Frameworks/JavaVM.fra…
java.specification.vendor=Sun Microsystems Inc.
user.language=de
awt.toolkit=apple.awt.CToolkit
java.vm.info=mixed mode, sharing
java.version=1.5.0_16
java.ext.dirs=/Library/Java/Extensions:/System/Libr…
sun.boot.class.path=/System/Library/Frameworks/JavaVM.fra…
java.vendor=Apple Inc.
file.separator=/
java.vendor.url.bug=http://bugreport.apple.com/
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
mrj.version=1050.1.5.0_16-284
socksNonProxyHosts=local|*.local|169.254/16|*.169.254/16
ftp.nonProxyHosts=local|*.local|169.254/16|*.169.254/16
sun.cpu.isalist=
Betriebssystem Mac OS X
Popularity: 39% [?]
Keine Kommentare »