我正在开发一个包含许多模块 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
答案 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