运行 jar 文件使用 Qt (QProcess)
Posted
技术标签:
【中文标题】运行 jar 文件使用 Qt (QProcess)【英文标题】:Run jar file use 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 文件。我尝试这样做,使用双“\\”但不运行,也不显示错误,你怎么看?
【参考方案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()
以上是关于运行 jar 文件使用 Qt (QProcess)的主要内容,如果未能解决你的问题,请参考以下文章