gpt4 book ai didi

java - 获取linux下javaws jnlp小程序的PID

转载 作者:太空狗 更新时间:2023-10-29 11:06:16 25 4
gpt4 key购买 nike

我正在尝试从 bash 运行 java (jnlp) applet 并获取已创建进程的 PID。

使用这个命令:

javaws myapplet.jnlp > /dev/null & echo $!

这将返回加载 jnlp 的第一个 java 实例的 pid;我猜,但与运行的最终 java 进程无关。

有什么线索吗?

查出原来的javaws如下:

#!/bin/sh
prog="$0"
while [ -h "$prog" ]; do prog=$(readlink -f $prog); done
[ $# -eq 0 ] && set -- -viewer
exec $(dirname $prog)/javaws.real "$@"

有没有办法修改让它给出子进程的PID?

最佳答案

创建一个 agent .jar file并使用 javaws 的 -J 选项加载它。 -J 参数直接传递给目标 VM,并与 .jnlp 文件中的 vm args 结合,因此您可以在与应用程序相同的进程中加载​​本地代理库。


例子:

This agent library包含一个 premain 方法,该方法将当前 PID(通过 JNA 访问)存储在文本文件中。

假设 getpid.jarjna.jar 在当前目录中,它可以通过以下方式启动:

javaws -J-javaagent:getpid.jar=pid.txt myapplet.jnlp

这将在将其 PID 写入文件 pid.txt 后启动小程序。

关于java - 获取linux下javaws jnlp小程序的PID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3492850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com