Java mit FreeBSD 7.0

true

FreeBSD Desktop user
Ich habe versucht auf meinem neu installierten FreeBSD 7.0-STABLE vom 02.05.2008 Java zu installieren und habe zuerst diablo-jdk15 aus den Ports installiert.
Die Installation verläuft ohne Probleme und "java -version" bringt auch die erwartete Meldung.
Wenn ich jedoch ein Programm mit GUI ausführen will (z.B. aus /usr/local/diablo-jdk15/demos/jfc), ist die Programmoberfläche kurz sichtbar und java verabschiedet sich mit einem core-dump.

Ähnlich ist es mit jdk16, nur dass hier der core-dump schon während der Installation passiert, ich glaube weil das installierte JDK verwendet wird um den Port zu bauen.

Nächster Versuch war linux-sun-jdk16, welches das selbe Problem hat wie diablo-jdk15.
Compat5x und Compat6x sind installiert und werden vom Kernel unterstützt.

Das ganze ist so auf meiner Workstation und in einer VMWare auf einem anderen Rechner.

Geht das zur Zeit auf 7.0 einfach nicht oder habe ich etwas falsch konfiguriert? Auf meiner 6.3-Installation gibts da keine Probleme.
 
Auf meinem Releng_7 gibt es da auch keine Probleme. Versuch das Diablo-JDK neu zu installieren, vielleicht ist da etwas schiefgegangen.
 
Morgen

Würde neu Installieren bzw. nochmal die Doku genau lesen und schauen, ob du vieleicht nicht ein flüchtigkeitsfehler gemacht hast.

Gruss
bsdagent
 
Neuinstallation hat nichts gebracht. Das Problem tritt ja auf 2 unterschiedlichen Rechnern auf und so schwierig ist die Installation von diablo-jdk15 ja nicht, dass man da viel falsch machen könnte.
Was funktioniert bei euch? JDK16 oder diablo-jdk15?
 
Beides. Das ganze klingt schon seltsam. Hast du mal misc/compat6x neu installiert?
 
Ich hab das selbe Problem hier auch. Es steht allerdings ziemlich weit unten auf meiner Prioliste.
amd64 7.0-p1

Exakt das Selbe.
 
Vielleicht geht es bei mir, weil ich Releng_7 verwende. Mir fällt jedenfalls keine vernünftige Erklärung ein.
 
Hab ähnliche Probleme, wobei das von der Java-Applikation abhängig zu sein scheint. Firefox stirbt sofort, wenn auf einer Seite ein Applet auftaucht. Eclipse hingegen funktioniert interessanterweise...
 
Das mit Firefox hatte ich auch für 'ne Weile. Ging aber mit dem letzten jdk1.6 Update weg.
 
Ich habe versucht jdk16 zu bauen, das sollte anscheinend mit diablo-jdk15 gehen. Leider bekomme ich diesen Fehler:
Code:
...
Loading source file ../../../../src/share/classes/javax/swing/JToolBar.java...
Loading source file ../../../../src/share/classes/javax/swing/JTree.java...
Loading source file ../../../../src/share/classes/javax/swing/JWindow.java...
Loading source file
../../../../src/share/classes/javax/swing/text/JTextComponent.java...
Constructing Javadoc information...

>>> Generating beaninfo for javax.swing.AbstractButton...
javadoc: error - In doclet class GenDocletBeanInfo,  method start has
thrown an exception java.lang.reflect.InvocationTargetException
java.lang.UnsatisfiedLinkError: Can't load library:
/usr/ports/java/jdk16/work/control/build/bsd-i586/lib/i386/motif21/libmawt.so
       at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1650)
       at java.lang.Runtime.load0(Runtime.java:770)
       at java.lang.System.load(System.java:1005)
       at java.lang.ClassLoader$NativeLibrary.load(Native Method)
       at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
       at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1668)
       at java.lang.Runtime.loadLibrary0(Runtime.java:823)
       at java.lang.System.loadLibrary(System.java:1030)
       at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
       at java.security.AccessController.doPrivileged(Native Method)
       at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38)
       at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29)
       at java.awt.Component.<clinit>(Component.java:552)
       at java.lang.Class.forName0(Native Method)
       at java.lang.Class.forName(Class.java:169)
       at GenSwingBeanInfo.getClass(GenSwingBeanInfo.java:472)
       at GenSwingBeanInfo.genBeanInfo(GenSwingBeanInfo.java:355)
       at GenDocletBeanInfo.start(GenDocletBeanInfo.java:190)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:215)
       at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:91)
       at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
       at com.sun.tools.javadoc.Start.begin(Start.java:128)
       at com.sun.tools.javadoc.Main.execute(Main.java:41)
       at com.sun.tools.javadoc.Main.main(Main.java:31)
1 error
gmake[3]: *** [.javadoc.beanlist] Error 1
gmake[3]: Leaving directory
`/usr/ports/java/jdk16/work/j2se/make/javax/swing/beaninfo'
gmake[2]: *** [swing-1.2-beans] Error 2
gmake[2]: Leaving directory
`/usr/ports/java/jdk16/work/j2se/make/javax/swing/beaninfo'
gmake[1]: *** [initial-image-jdk] Error 2
gmake[1]: Leaving directory `/usr/ports/java/jdk16/work/j2se/make'
gmake: *** [j2se-build] Error 2
*** Error code 2

Stop in /usr/ports/java/jdk16.
*** Error code 1

Stop in /usr/ports/java/jdk16.
Motif ist installiert.
Code:
tr@~ >cat /var/db/ports/jdk16/options
# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for jdk-1.6.0.3p4_1
_OPTIONS_READ=jdk-1.6.0.3p4_1
WITHOUT_DEBUG=true
WITHOUT_IPV6=true
WITH_WEB=true
WITHOUT_POLICY=true
WITH_TZUPDATE=true
WITHOUT_JAIL=true
tr@~ >pkg_info |grep motif
open-motif-2.2.3_5  Motif X11 Toolkit (industry standard GUI (IEEE 1295))
tr@~# uname -a
FreeBSD lynx.ath.cx 7.0-STABLE FreeBSD 7.0-STABLE #3: Fri May  2
17:50:35 CEST 2008     tr@lynx.ath.cx:/usr/obj/usr/src/sys/SELEYA
i386
 
@true
Versuch doch mal jdk15 aus den ports zu bauen. Das funktioniert unter FreeBSD7.0R. diablo-jdk15 musst danach deinstallieren.

edit: Der Link "libc.so.6" in der "/usr/lib" sollte auf "/usr/compat/linux/lib/libc.so.6" zeigen, und nicht auf "/usr/local/lib/compat/libc.so.6" zeigen.
 
Zuletzt bearbeitet:
Zu meinem jdk15 und Firefox ist noch Folgendes zu sagen: Der Firefox stürzt reproduzierbar ab, wenn ich im Browser Header einen erfundenen User-Agent verwende und eine Seite mit Applet versuche zu öffnen. Mit dem Default-User-Agent, funktioniert jdk15 ohne Fehler. Liegt das an Java oder am Firefox?
 
Was funktioniert bei euch? JDK16 oder diablo-jdk15?

Bei mir funktioniert das diablo jdk nicht mehr (7.0). Das Browserplugin stuerzt ab und reisst den Browser gleich mit runter. Sehr nervig, da ich Java regelmaessig zum Zugriff eRIC Karten brauche. Jetzt ist ein JDK16 installiert und alles tut wieder.

Der betreffende Fehler trat, das sagt zumindest Google, auch unter anderen Betriebssystemen auf und dort wurde jeweils auch empfohlen, von 1.5 auf 1.6 zu aktualisieren. Jedenfalls schien es keine spezifische BSD oder diablo Sache zu sein.

PS: Reinstall von diablo-jdk15 oder irgendwas anderem brachte keinerlei Veraenderung.

Update:
Ok, jetzt hatte ichs gleich nochmal probiert nachm Posten und siehe da: firefox wieder tot, java_vm Prozesse die nicht zu killen waren. Ich hab jetzt einfach mal den kompletten Cache (sprich alles unter .java) weggeloescht. Und siehe da, nun laeufts wieder. Es interessiert mich jetzt irgendwie brennend, ob das auch mit dem diablo jdk vielleicht funktioniert haette. Vielleicht kann das mal einer von Euch probieren.

Was ich auch noch getan habe (ist allerdings ein spezifisches Problem bei mir): das .java Verzeichnis von meinem NFS Home in ein lokales Verzeichnis verschoben und entsprechend ver(sym)linkt. Seit irgendwann um die Version 6.2 herum muss ich das mit allen Verzeichnissen tun, in denen viele Locks gesetzt werden (.mozilla, alles was mit Gnome zu tun hat). Ansonsten haengen sich die Anwendungen alle frueher oder spaeter unkillbar an den nfs locks fest und ich bekomme das nur weg, in dem ich kurz lockd beende und warte, bis die haengende Anwendung verstorben ist. Das NFS Locking von FreeBSD schein #+@!! zu sein. Verschiebt man es auf ein lokales Filesystem, verschwindet das Problem.
 
Zuletzt bearbeitet:
Soviel ich mitgekriegt habe, kann diablo-jdk15 unter FreeBSD 7 nur noch dazu genutzt werden, andere JDKs zu bauen. Das hat bei mir jetzt glücklicherweise funktioniert um die native jdk15 zu installieren.
Das Java2D-Demo (/usr/local/jdk1.5.0/demo/jfc/Java2D), das mit diablo, linux-sun-jdk15 und linux-sun-jdk16 nicht funktioniert, läuft jetzt mit jdk15.
Bei der Installation von jdk16 bekomme ich immer noch den vorher beschriebenen Fehler (diablo ist deinstalliert):
Code:
Can't load library:
/usr/ports/java/jdk16/work/control/build/bsd-i586/lib/i386/motif21/libmawt.so
Aber immerhin habe ich jetzt ein funktionierendes Java5.
 
Ich habe jetzt jdk16 erfolgreich mit jdk15 gebaut. Ich glaube, dass der Grund für das Problem die Umgebungsvariable AWT_TOOLKIT war, die auf "MToolkit" gesetzt war.
Java-Plugin in Firefox funktioniert auch.
 
gibt es Java 1.6 nicht irgendwo als Package? Ich hab echt keine Lust mich nochmal auf so ein gefrickel einzulassen und daran zu scheitern, wo ich doch sowieso Aversionen gegen Java hab, ?

Oder gibt es irgendwo ein "copy &paste" tutorial das ohne Nachdenken klappt?

Danke :)
 
Java 1.6 läuft bei mir - nur wie bekomme ich Firefox beigebracht, es zu nutzen? Der behauptet jetzt immer, es sei kein Java-Plugin vorhanden *grml*
 
Ist der Link /usr/local/lib/browser_plugins/libjavaplugin_oji.so -> /usr/local/jdk1.6.0/jre/plugin/amd64/ns7/libjavaplugin_oji.so vorhanden?
 
Danke, das war's! Wenn man JDK-1.6 installiert und noch diablo drauf hat, wird der Link nicht angelegt. Da diablo unter FreeBSD-7.0 nicht funktioniert, hab ich's wieder runtergeschmissen. Damit war der Link (wenn auch nur der zur falschen JRE) natürlich weg...

Nachtrag:
Einfache Applets funktionieren jetzt. Komplexere Brocken wie die Konsole einer Remote Management Karte (DRAC IV) lassen den Browser aber immer noch abstürzen.
 
Zuletzt bearbeitet:
Zurück
Oben