Afr*_*Afr 8 java macos shell applescript noclassdeffounderror
我创建了一个Java应用程序,需要准备它在任何操作系统上运行.对于Windows,我创建了一个这样的批处理文件launch-win32.bat:
@echo off
javaw -Xss1024k -Xmn256m -Xms512m -Xmx1024m -cp lib/*;bin/myjar-latest.jar my.package.MyMainClass
Run Code Online (Sandbox Code Playgroud)
对于linux我创建了一个这样的shell脚本launch-linux.sh:
#!/bin/sh
java -Xss1024k -Xmn256m -Xms512m -Xmx1024m -cp lib/*:bin/myjar-latest.jar my.package.MyMainClass
Run Code Online (Sandbox Code Playgroud)
现在我认为MacOS与linux非常相似,因为它们都是基于unix的,我问一个带有mac的朋友尝试运行shellscript来启动我的应用程序.但它失败了以下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)
Run Code Online (Sandbox Code Playgroud)
看起来java命令的语法不正确,因为类路径未正确添加到java程序中.我现在的主要问题如下:
所以现在我的问题是:
;而不是冒号:分隔符.).sh或者.scpt或者 .command在linux中,只要你chmod +x的脚本文件,文件结尾无关紧要?谢谢你的任何提示.
Afr*_*Afr 10
好的,经过几个小时的研究,这个问题似乎不止一个答案.
.commandbash脚本文件.它们看起来与linux shell脚本非常相似.使它们像shell脚本一样可执行chmod +x.NoClassDefFoundError可能是Mac OS上默认安装的Java VM低于编译软件所需的JRE/JDK.除了告诉用户安装lateste JRE之外,我无能为力.NoClassDefFoundError是 - 这非常令人震惊 - Mac OS中的bash脚本不是从它们所在的目录中运行,而是从用户的主目录运行.该解决方案是将行添加到bash脚本,找出工作目录:cd "$(dirname "$0")"(另见.)launch-win32.bat@echo off
javaw -Xss1024k -Xmn256m -Xms512m -Xmx1024m -cp lib/*;bin/myjar-latest.jar my.package.MyMainClass
Run Code Online (Sandbox Code Playgroud)
launch-linux.sh#!/bin/sh
java -Xss1024k -Xmn256m -Xms512m -Xmx1024m -cp lib/*:bin/myjar-latest.jar my.package.MyMainClass
Run Code Online (Sandbox Code Playgroud)
launch-macos.command#!/bin/bash
cd "$(dirname "$0")"
java -Xss1024k -Xmn256m -Xms512m -Xmx1024m -cp lib/*:bin/myjar-latest.jar my.package.MyMainClass
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15020 次 |
| 最近记录: |