使用shell(...)
我的jar有效地从VBA脚本中获取一些ID作为启动参数,从Web服务查询值并使用JOptionPane.ShowMessageDialog
显示它们
这是我的代码:
private static JFrame quotenframe = new JFrame();
public static void main(String args[]){
if(args.length < 3){
JOptionPane.showMessageDialog(quotenframe, "Not enough parameters!", "Error", JOptionPane.ERROR_MESSAGE);
closeAll(1);
}
if(args[0].split("@").length<2){
JOptionPane.showMessageDialog(quotenframe, "Invalid value! '@' missing", "Error", JOptionPane.ERROR_MESSAGE);
closeAll(1);
}
String var1 = args[0].split("@")[0];
String var2 = args[0].split("@")[1];
String var3 = args[1];
String var4 = args[2];
String result = "";
// Build resultString
JOptionPane.showMessageDialog(quotenframe, result);
closeAll(0);
}
从Windows cmd shell启动时,JAR本身执行时没有问题,但是当我的VBA脚本中的Shell(...)
命令运行相同的命令行时,唯一的反应是可见的分割的java图标任务栏中的第二个,然后消失。
我的命令是:
java -jar jarFolder\myjar.jar param1 param2 param3
并且执行目录是jarFolder
的一个级别。
在我看来,JAR在启动时崩溃了,但是,我无法理解为什么,因为同一个JAR,在同一个目录中,使用来自Windows shell的相同命令启动效果很好。
它与JOptionPane
有什么关系吗?如果没有,任何想法可能是什么错误?
答案 0 :(得分:0)
解决方案是,如果JAR位于子文件夹中,则需要使用VBA的Shell(...)
命令调用jar时指定jar的完整路径。