Как создать AppleScript- или командный файл для запуска приложения Java в Mac OS?

Я создал приложение Java, и мне нужно подготовить его для работы в любой ОС. Для Windows я создал пакетный файл, подобный этому launch-win32.bat:

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

Для linux я создал сценарий оболочки, подобный этому launch-linux.sh:

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

Теперь я думал, что MacOS будет очень похож на Linux, поскольку оба основаны на Unix, и я попросил друга с Mac попробовать запустить сценарий оболочки для запуска моего приложения. Но это не удалось со следующим 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)

Похоже, что синтаксис команды java неверен, поскольку путь к классам не добавлен должным образом в программу java. Моя основная проблема сейчас заключается в следующем:

  1. MacOS официально не поддерживается Sun/Oracle, поэтому трудно найти хорошую документацию. (Мне нужна последняя версия JRE 7).
  2. Я никогда не пользовался Mac или не имел возможности попробовать, как это может работать.

Теперь мои вопросы:

  1. Как запустить java из командной строки в MacOS, каков правильный синтаксис? Или почему команда выше не работает? (Например, основное различие между Windows и Linux заключается в использовании точки с запятой ;вместо разделителя двоеточия :для пути к классам.)
  2. Как следует называть файл сценария MacOS? .shили .scptили .commandили это похоже на Linux, что окончание файла не имеет значения, пока вы chmod +xфайл скрипта?

Спасибо за любые подсказки.

8
задан Afr 11 March 2012 в 21:22
поделиться