我正在开发一个具有Launcher类的应用程序,该类具有以下代码来执行应用程序主类,它具有以下代码。
public class Launcher {
private static final String jarName = "LDC_MCM.jar";
private static final String mainClassWithPackageName = "com.ars.ldcmcm.Application";
public static void main(String[] args) {
String path = Configuration.getInstance().getAppFolder();
String cmd = "java -XX:+ForceTimeHighResolution -cp "+path+"\\"+jarName+" "+ mainClassWithPackageName;
System.out.println("invoking... \n"+cmd);
try {
Runtime.getRuntime().exec(cmd);
} catch (Exception e) {
e.printStackTrace();
}
}
}
当我看到我的应用程序没有启动时,我尝试使用以下命令在批处理文件中运行我的jar。
java -jar LDC_MCM.jar
执行结果如下:
F:\SMC>java -Dfile.encoding=UTF-8 -jar LDC_MCM.jar
invoking...
java -XX:+ForceTimeHighResolution -cp F:\SMC\LDC_MCM.jar com.ars.ldcmcm.Application
执行保持不变,应用程序无法启动。如果没有我的应用程序主要启动,有人可以告诉为什我已经尝试将我的代码支持到旧版本以查看它是否与应用程序代码有关。
如果您需要任何其他详细信息,请发表评论。 com.ars.ldcmcm.Application将为swing应用程序设置一个框架。
我在这方面尝试了更多的事情。我尝试直接通过命令提示符运行命令,我得到了一个例外,如下所示。
F:\>java -XX:+ForceTimeHighResolution -cp F:\SMC\LDC_MCM.jar com.ars.ldcmcm.Application
Exception in thread "main" java.lang.NullPointerException
at com.ars.ldcmcm.Application.main(Application.java:283)
由于应用程序类中存在异常,我尝试通过eclipse运行应用程序main,应用程序按预期启动。
答案 0 :(得分:0)
看看这是否有所不同:
public static void main(String[] args) {
String path = Configuration.getInstance().getAppFolder();
String cmd = "java -XX:+ForceTimeHighResolution -cp "+path+"\\"+jarName+" "+ mainClassWithPackageName;
System.out.println("invoking... \n"+cmd);
Process p;
try {
P = Runtime.getRuntime().exec(cmd);
p.waitFor();
System.out.println("Script executed successfully");
} catch (Exception e) {
e.printStackTrace();
}
}