So erstellen Sie ein AppleScript - oder Command-Datei zum starten einer Java-Applikation auf Mac OS?

Erstellte ich eine Java-Anwendung und vorbereiten müssen, und es laufen auf jedem OS. Für Windows erstellte ich eine batch-Datei wie folgt launch-win32.bat:

@echo off
javaw -Xss1024k -Xmn256m -Xms512m -Xmx1024m -cp lib/*;bin/myjar-latest.jar my.package.MyMainClass

Für linux erstellt habe ich ein shell-Skript wie dieses launch-linux.sh:

#!/bin/sh
java -Xss1024k -Xmn256m -Xms512m -Xmx1024m -cp lib/*:bin/myjar-latest.jar my.package.MyMainClass

Nun dachte ich MacOS ganz ähnlich wie linux, da beide auf unix basieren und ich bat einen Freund mit einem mac zu versuchen, führen Sie das shellscript zum starten meiner Anwendung. Aber es konnte nicht mit der folgenden NoClassDefFoundError:

Exception in thread "main" java.lang.NoClassDefFoundError: my/package/MyMainClass
Caused by: java.lang.ClassNotFoundException: my.package.MyMainClass
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

Wie es aussieht ist die syntax der java-Befehl ist nicht korrekt, da der classpath nicht korrekt Hinzugefügt, um das java-programm. Mein Hauptproblem ist jetzt die folgende:

  1. MacOS wird nicht offiziell unterstützt von Sun/Oracle, die ist, warum es ist schwer zu finden einige gute Dokumentation. (Ich brauche die neueste JRE 7).
  2. Ich nie benutzt, Mac oder don ' T haben, um zu versuchen, wie es funktionieren könnte.

Also meine Fragen sind jetzt:

  1. Wie die Ausführung von java von der Kommandozeile in MacOS, was ist die richtige syntax? Oder warum funktioniert der obige Befehl nicht funktionieren? (Zum Beispiel der wesentliche Unterschied zwischen Windows und Linux ist mit Semikolon ; statt Doppelpunkt : separator für die classpath.)
  2. Wie soll eine MacOS-Skript-Datei benannt werden sollten? .sh oder .scpt oder .command oder ist es wie unter linux, dass die Datei-Endung spielt keine Rolle, solange Sie chmod +x die Skript-Datei?

Vielen Dank für alle Hinweise.

  • +1 für gut beschrieben Frage.
  • Macht die app. eine GUI haben?
  • Ja, einer swing-Schnittstelle.
InformationsquelleAutor soc1c | 2012-03-11
Schreibe einen Kommentar