1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Java: Main-Class in bundle nicht auffindbar

Dieses Thema im Forum "OS X-Developer" wurde erstellt von comkee, 13.06.08.

  1. comkee

    comkee Erdapfel

    Dabei seit:
    02.06.06
    Beiträge:
    4
    Ich bin gerade dabei ein ANT build script zum Export von processing sketchen zu basteln. Web export als Applet und .app bundle ohne in packages verschachtelte Main-Class funktionieren. Nun der Fall das die Main in einem package verbaut ist – die Applikation startet, springt ein, zwei mal im Dock und verschwindet wieder. Im Terminal meint gdb das die Main nicht gefunden werden kann:
    Code:
    java.lang.ClassNotFoundException: Main
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
    …
    
    Nach allen möglichen trail and error Versuchen in der .plist und dem Manifest bin ich am Ende meines Lateins. Laut Informationen aus dem Netz ist es nur nötig den package Name vor den Klassennamen der Main class im Punkt MainClass zu packen. Hier die entsprechenden Auszüge aus den plist Dokumenten.

    funktioniert:
    Code:
    <plist version="0.9">
    <dict>
    …
    	<key>CFBundleIdentifier</key> 
    	<string>Main</string>
    	<key>Java</key>
    	<dict>
    		<key>VMOptions</key>
    		<string>-Xms128M -Xmx256M</string>
    		<key>MainClass</key>
    		<string>Main</string>
    		<key>JVMVersion</key>
    		<string>1.3+</string>
    		<key>ClassPath</key>
    		<string>$JAVAROOT/Main.jar:$JAVAROOT/core.jar</string>
    

    funktioniert nicht:
    Code:
    <plist version="0.9">
    <dict>
    …
    	<key>CFBundleIdentifier</key> 
    	<string>foo.Main</string>
    	<key>Java</key>
    	<dict>
    		<key>VMOptions</key>
    		<string>-Xms128M -Xmx256M</string>
    		<key>MainClass</key>
    		<string>foo.Main</string>
    		<key>JVMVersion</key>
    		<string>1.3+</string>
    		<key>ClassPath</key>
    		<string>$JAVAROOT/Main.jar:$JAVAROOT/core.jar</string>
    
    Als Beispiel habe ich eine funktionierende und eine nicht funktionierende .app Version hochgeladen.

    .app - funktioniert
    .app – funktioniert nicht

    Greift OS X beim Starten solch gepackter jars auf das Manifest zu? Alle üblichen Informationen sind ja in der .plist anzugeben.
     

Diese Seite empfehlen