我有一个ProcessBuilder,它应该用2个参数执行某个类的main方法。我在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。
有谁知道这是什么问题?
答案 0 :(得分:0)
我认为这不起作用,因为您没有在清单中添加Main-Class
。
尝试以下列方式生成jar:
C:/> echo Main-Class: Test >manifest.txt
jar -cvfm sample.jar manifest.txt com/sample/*.class