使用命令行界面应用程序作为库

时间:2014-01-19 18:26:53

标签: java swing

我想在java中创建一个用于签署j2me应用程序的GUI应用程序,该应用程序由JadTool.jar完成,但它是一个命令行界面应用程序。所以我只想将它用作库并在程序中传递参数。怎么做?

2 个答案:

答案 0 :(得分:2)

结帐Runtime。它将允许您执行命令。您可以使用它来启动命令行界面库。

编辑: 啊,我之前没仔细看过。如果您正在使用Java库,那么启动单独的流程并不是最佳解决方案。

只需从项目中引用JadTool jar即可。如果库中无法访问您需要的功能,请编辑源并重新编译。确保JadTool的许可证允许这样做。

如果您反对编辑源(或不允许),请尝试使用反射来调用您需要的私有运行方法。

答案 1 :(得分:1)

jar只是一个类库,它可以从命令行运行,这是由于类中存在main方法引起的。作为jadtool的source is available,很容易看到它非常简单的主要内容:

public static void main(String[] args) {
    int exitStatus = -1;

    try {
        new JadTool().run(args);
        exitStatus = 0;
    } catch (Exception e) {
        System.err.println("\n" + e.getMessage() + "\n");
    }

    System.exit(exitStatus);
}

不幸的是,run()方法是私有的,因此直接从另一个类调用它将无效,导致选项集减少:

  1. @WilliamMorrison通过Runtime进行的解决方案 - 不是真正的图书馆电话,但它会起作用。
  2. 请参阅Any way to Invoke a private method?