云计算百科
云计算领域专业知识百科平台

服务器上怎么看java运行的程序jar包在哪里

在服务器上查找正在运行的 Java 程序的 JAR 包位置,可以通过以下方法:

1. 通过进程信息查找

  • 获取 Java 进程的 PID:在 Linux 服务器上,可以使用以下命令查找 Java 进程的 PID:

    bash复制

    ps -ef | grep java

    或者使用更精确的命令:

    bash复制

    pgrep -f java

  • 查找 JAR 包路径:找到 Java 进程的 PID 后,可以通过以下命令获取其工作目录:

    bash复制

    ps -p <PID> -o cwd=

    如果输出为 -,说明工作目录未正确报告,可以尝试:

    bash复制

    ls -l /proc/<PID>/cwd

    这会显示一个符号链接,指向实际的工作目录。

  • 在工作目录中查找 JAR 文件:使用 find 命令在工作目录中查找 JAR 文件:

    bash复制

    find /path/to/jar/directory -name "*.jar"

2. 通过命令行参数查找

  • 如果 Java 程序是通过命令行启动的,可以查看启动时的命令行参数。在 Linux 上,可以使用以下命令:

    bash复制

    ps -ef | grep java

    或者:

    bash复制

    cat /proc/<PID>/cmdline

    这会显示启动 Java 程序时的完整命令行参数,从中可以找到 JAR 包的路径。

3. 使用 Java 代码获取

如果你有权限访问 Java 程序的代码,可以在程序中添加以下代码来输出 JAR 包的路径:

java复制

String jarPath = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
System.out.println("JAR包位置: " + jarPath);

4. 在 Windows 服务器上查找

  • 获取 PID:使用以下命令查找 Java 进程的 PID:

    bash复制

    tasklist /FI "IMAGENAME eq java.exe"

  • 查找 JAR 包路径:使用 PowerShell 脚本根据 PID 查找 JAR 包路径:

    powershell复制

    function Get-JarPathByPID {
    param (
    [int]$PID
    )
    $process = Get-Process -Id $PID
    $commandLine = (Get-WmiObject Win32_Process | Where-Object { $_.ProcessId -eq $PID }).CommandLine
    if ($commandLine -match "-jar\\s+([^\\s]+)") {
    return $matches[1]
    } else {
    return "未找到 Jar 包路径"
    }
    }
    $pid = 1234 # 替换为实际的 PID
    $jarPath = Get-JarPathByPID -PID $pid
    Write-Host "Jar 包路径为: $jarPath"

通过以上方法,你可以快速定位服务器上运行的 Java 程序的 JAR 包位置。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 服务器上怎么看java运行的程序jar包在哪里
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!