【问题标题】:Run jar file use Qt (QProcess)运行 jar 文件使用 Qt (QProcess)
【发布时间】:2021-02-25 13:51:11
【问题描述】:

如何从 qt 执行 jar 应用程序(使用 Windows)?我知道 QProcess,我使用它:

     QProcess myProcess;
     myProcess.setWorkingDirectory("D:\Programs\Qt\Units\MyJavaProjects\StackExp\target");
     myProcess.start("StackExp-1.0-SNAPSHOT.jar");
     myProcess.waitForFinished();

我显示这条消息:

D:\Programs\Qt\Units\MyJavaProjects\Qt-Java\JavaQt\mainwindow.cpp:78: предупреждение: C4129: 'P': unrecognized character escape sequence

D:\Programs\Qt\Units\MyJavaProjects\Qt-Java\JavaQt\mainwindow.cpp:78: предупреждение: C4129: 'Q': unrecognized character escape sequence

D:\Programs\Qt\Units\MyJavaProjects\Qt-Java\JavaQt\mainwindow.cpp:78: предупреждение: C4129: 'M': unrecognized character escape sequence

D:\Programs\Qt\Units\MyJavaProjects\Qt-Java\JavaQt\mainwindow.cpp:78: предупреждение: C4129: 'S': unrecognized character escape sequence

而且我的 jar 文件没有运行。我如何从 qt 执行我的 jar 文件?我的问题有 qt 其他库吗? 你怎么看?

【问题讨论】:

  • 或使用start.exe 启动它并利用那里的文件类型关联。但是,您的错误消息试图提醒您,如果您想在字符串中使用反斜杠,则必须将它们加倍("D:\\Progra...")。
  • start.exe 呢?我有一个 java 文件,可执行 jar 文件。我尝试这样做,使用双“\\”但不运行,也不显示错误,你怎么看?

标签: java c++ qt qprocess


【解决方案1】:

当您“运行 example.jar”时,您实际上运行的是 java.exe -jar example.jar

QProcess process;
process.setWorkingDirectory("D:\\Programs\\Qt\\Units\\MyJavaProjects\\StackExp\\target");
process.setProgram("java.exe");
process.setArguments({"-jar","StackExp-1.0-SNAPSHOT.jar"});
process.start();

【讨论】:

  • 使用这段代码,我什么都没有,并显示消息:QProcess: Destroyed while process ("java.exe") is still running。怎么了?
  • 添加process.waitForFinished(); 或将process.start() 替换为process.startDetached()
猜你喜欢
  • 2016-12-10
  • 1970-01-01
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多