summaryrefslogtreecommitdiffstats
path: root/logic/JavaChecker.cpp
diff options
context:
space:
mode:
authorSky <git@bunnies.cc>2013-12-13 14:58:35 +0000
committerSky <git@bunnies.cc>2013-12-13 14:58:35 +0000
commitb69351d50d07bab595945d064e4d29b123c19105 (patch)
tree5cf6be9ef49ad10a211a0544e5481f36e49a306a /logic/JavaChecker.cpp
parent979946b7bb2cec808198f9194169ea08cce8bb00 (diff)
parent0af6f96c3de54c940799826ff6f3c89bb46f1540 (diff)
downloadMultiMC-b69351d50d07bab595945d064e4d29b123c19105.tar
MultiMC-b69351d50d07bab595945d064e4d29b123c19105.tar.gz
MultiMC-b69351d50d07bab595945d064e4d29b123c19105.tar.lz
MultiMC-b69351d50d07bab595945d064e4d29b123c19105.tar.xz
MultiMC-b69351d50d07bab595945d064e4d29b123c19105.zip
Merge branch 'develop' of github.com:Drayshak/MultiMC5 into develop
Diffstat (limited to 'logic/JavaChecker.cpp')
-rw-r--r--logic/JavaChecker.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/logic/JavaChecker.cpp b/logic/JavaChecker.cpp
index 38bbf700..2b94fbb6 100644
--- a/logic/JavaChecker.cpp
+++ b/logic/JavaChecker.cpp
@@ -2,6 +2,7 @@
#include <QFile>
#include <QProcess>
#include <QMap>
+#include <QTemporaryFile>
#define CHECKER_FILE "JavaChecker.jar"
@@ -11,14 +12,15 @@ JavaChecker::JavaChecker(QObject *parent) : QObject(parent)
void JavaChecker::performCheck()
{
- if(QFile::exists(CHECKER_FILE))
- {
- QFile::remove(CHECKER_FILE);
- }
- // extract the checker
- QFile(":/java/checker.jar").copy(CHECKER_FILE);
+ checkerJar.setFileTemplate("checker_XXXXXX.jar");
+ checkerJar.open();
+ QFile inner(":/java/checker.jar");
+ inner.open(QIODevice::ReadOnly);
+ checkerJar.write(inner.readAll());
+ inner.close();
+ checkerJar.close();
- QStringList args = {"-jar", CHECKER_FILE};
+ QStringList args = {"-jar", checkerJar.fileName()};
process.reset(new QProcess());
process->setArguments(args);
@@ -40,6 +42,7 @@ void JavaChecker::finished(int exitcode, QProcess::ExitStatus status)
killTimer.stop();
QProcessPtr _process;
_process.swap(process);
+ checkerJar.remove();
JavaCheckResult result;
{