簡體   English   中英

Java 的啟動器

[英]Launcher for Java

我有一個 jar 文件,為此我創建了一個自定義 c++ 啟動器腳本。 我不知道如何只允許程序的一個實例運行。 有沒有辦法檢測已經運行的 jvm?

這是啟動器代碼-

#include <string>
#include <direct.h>

using namespace std;

int main(int arg_count, char* arg_list[]) {

    string exeName(arg_list[0]);
    string rootDir = exeName.substr(0, exeName.find_last_of("\\"));
    string jarFile = ".\\dist\\PlayIt.jar";
    string cmd;
    string javaCmdFile = ".\\jre\\bin\\javaw.exe";

    _chdir(rootDir.c_str());

    if (arg_count == 1) {
        cmd = "start " + javaCmdFile + " -jar " + jarFile + " visible";
    }
    else if (arg_count > 1) {
        cmd = "start " + javaCmdFile + " -jar " + jarFile + " invisible";
        for (int i = 1; i < arg_count; i++) {
            cmd += " \"" + string(arg_list[i]) + "\"";
        }
    }
    system(cmd.c_str());
}

/jdk/bin 中的jps命令列出了所有正在運行的 java 進程。 如果要確保沒有其他進程正在運行,可以使用pkill -9 java命令。 請注意,它會殺死所有正在運行的 java 進程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM