0

我有一个 ProcessBuilder,它应该使用 2 个参数执行某个类的主要方法。我在 main 方法中做了一个小的 JFrame 只是为了测试它是否有效。

当我在 Eclipse 中运行代码时,我得到了 JFrame,但是当我将它导出为 JAR 时,我没有得到 JFrame ...

这是我的代码:

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Test
{
    public static void runTest(String arg1, String arg2)
    {

        try
        {
            String pathToJar = SelfUpdate.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
            ProcessBuilder pb = new ProcessBuilder("java", "-classpath", System.getProperty("java.class.path") + ";" + pathToJar, Test.class.getCanonicalName(), arg1, arg2);
            pb.start();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        System.exit(0);
    }

    public static void main(String[] args)
    {
        JFrame f = new JFrame();
        JLabel l = new JLabel("test");
        f.add(l);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
}

runTest 从不同的类中调用。

有谁知道问题是什么?

4

1 回答 1

0

我认为这不起作用,因为您没有添加Main-Class到清单中。

尝试通过以下方式生成您的 jar:

C:/> echo Main-Class: Test >manifest.txt
jar -cvfm sample.jar manifest.txt com/sample/*.class
于 2013-06-06T18:48:40.123 回答