为什么我不能从脚本执行我的java项目?

时间:2015-10-04 20:08:37

标签: java jar cygwin sh executable-jar

我正在开发一个包含许多模块 jar文件的项目,其中一个文件属于我的主类;我正在尝试编写一个shell脚本,它将设置类路径,然后启动应用程序;这是我的剧本。

#!/bin/sh
java -cp "modules/*;lib/*" com.example.Launcher

在此示例中,com.example.Launcher是包含 public static void main(String [] args)的类...

我面临的问题是,当我./myscript执行我的脚本时,我会给出输出

  

错误:无法找到或加载主类com.example.Launcher

这很简单,类路径有问题吗?

但如果直接从命令行执行

java -cp "modules/*;lib/*" com.example.Launcher

来自脚本的完全相同的命令,在脚本所在的目录中,一切正常。

有什么想法吗?

旁注
我是通过CygWin

运行的

另一面注意事项
这可能是CygWin中 sh 的问题。我将这个版本修改为CentOS机器并尝试执行它,将;更改为允许从脚本执行的:

即使有了更改,问题仍然存在于我的窗口机器上。

第三个​​旁注
再次出现问题是CygWin中的 sh ,我的最终解决方案是:

launcher.sh将使用类路径中的:调用java

launcher.bat将使用类路径中的;调用java

1 个答案:

答案 0 :(得分:2)

在类Unix系统上,分隔符是display dialog "Android Debugging Bridge GUI Please select the action you want to do. Ver 1.0" buttons {"Connected Devices", "", "Quit"} set the button_pressed to the button returned of the result if the button_pressed is "Connected Devices" then tell application "Terminal" if (count of windows) is not 0 then do script "~/Desktop/ADB-GUI/ADB-GUI.app/Contents/Resources/minerboyadb/" in window 1 do shell script "adb-devices.sh" end if end tell else if the button_pressed is "" then -- action for 2nd button goes here else display dialog "Thanks for using MinerBoy004's ADB GUI!" buttons {"Quit"} if the button_pressed is "Quit" then quit end if end if (不是:)。变化

;

java -cp "modules/*;lib/*" com.example.Launcher