使用JOptionPane从vba脚本启动JAR

时间:2013-09-20 06:48:17

标签: java vba jar cmd

使用shell(...)

从VBA脚本启动可执行JAR是否有任何限制

我的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有什么关系吗?如果没有,任何想法可能是什么错误?

1 个答案:

答案 0 :(得分:0)

解决方案是,如果JAR位于子文件夹中,则需要使用VBA的Shell(...)命令调用jar时指定jar的完整路径。