| 50 | } |
| 51 | |
| 52 | void JavaChecker::performCheck() |
| 53 | { |
| 54 | QString checkerJar = JavaUtils::getJavaCheckPath(); |
| 55 | |
| 56 | if (checkerJar.isEmpty()) |
| 57 | { |
| 58 | qDebug() << "Java checker library could not be found. Please check your installation."; |
| 59 | return; |
| 60 | } |
| 61 | |
| 62 | QStringList args; |
| 63 | |
| 64 | process.reset(new QProcess()); |
| 65 | if(m_args.size()) |
| 66 | { |
| 67 | auto extraArgs = Commandline::splitArgs(m_args); |
| 68 | args.append(extraArgs); |
| 69 | } |
| 70 | if(m_minMem != 0) |
| 71 | { |
| 72 | args << QString("-Xms%1m").arg(m_minMem); |
| 73 | } |
| 74 | if(m_maxMem != 0) |
| 75 | { |
| 76 | args << QString("-Xmx%1m").arg(m_maxMem); |
| 77 | } |
| 78 | if(m_permGen != 64) |
| 79 | { |
| 80 | args << QString("-XX:PermSize=%1m").arg(m_permGen); |
| 81 | } |
| 82 | |
| 83 | args.append({"-jar", checkerJar}); |
| 84 | process->setArguments(args); |
| 85 | process->setProgram(m_path); |
| 86 | process->setProcessChannelMode(QProcess::SeparateChannels); |
| 87 | process->setProcessEnvironment(CleanEnviroment()); |
| 88 | qDebug() << "Running java checker: " + m_path + args.join(" ");; |
| 89 | |
| 90 | connect(process.get(), SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(finished(int, QProcess::ExitStatus))); |
| 91 | #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) |
| 92 | connect(process.get(), SIGNAL(errorOccurred(QProcess::ProcessError)), this, SLOT(error(QProcess::ProcessError))); |
| 93 | #else |
| 94 | connect(process.get(), SIGNAL(error(QProcess::ProcessError)), this, SLOT(error(QProcess::ProcessError))); |
| 95 | #endif |
| 96 | connect(process.get(), SIGNAL(readyReadStandardOutput()), this, SLOT(stdoutReady())); |
| 97 | connect(process.get(), SIGNAL(readyReadStandardError()), this, SLOT(stderrReady())); |
| 98 | connect(&killTimer, SIGNAL(timeout()), SLOT(timeout())); |
| 99 | killTimer.setSingleShot(true); |
| 100 | killTimer.start(15000); |
| 101 | process->start(); |
| 102 | } |
| 103 | |
| 104 | void JavaChecker::stdoutReady() |
| 105 | { |
no test coverage detected