Closed allurx closed 4 years ago
JavaAgent
需要指定-javaagent
参数,即明确的知道目标服务器上Agent Jar
的路径是需要的。
# 个人没有找到不通过-javaagent
参数设置好Agent Jar
的方法。
可以通过一个脚本(简单的如shell
脚本)来启动启动Java
进程,在脚本中可以实现逻辑来发现TTL/Agent Jar
的位置。 @Allurx
一种实现方式如下:
start.sh
fat.jar
Agent Jar
: transmittable-thread-local-2.11.2.jar
启动脚本 start.sh
实现,获取启动脚本的所在目录,并启动进程:
#!/bin/bash
# get dir of script file self
readonly BASE="$(basename "$(readlink -f "$0")")"
java -javaagent:"$BASE/transmittable-thread-local-2.11.2.jar" -jar "$BASE/fat.jar"
Fat Jar 与 Agent 的相关资料:
@oldratlee 十分感谢你的回复,看来我只能通过脚本和ttl.jar来启动我的fat.jar了。
我现在有一个通过
spring-boot-maven-plugin
打包后的fat jar
,我是通过使用Java Agent来修饰JDK线程池实现类来启动这个fat jar
的,启动命令类似以下这种方式我现在有一个疑惑的地方:
fat jar
部署到服务器上时,我还必须保证目标服务器上有我当前fat jar
所用到的ttl.jar
fat jar
内部已经包含了这个jar
,但是我无法在javaagent
后面指定fat jar
中ttl.jar
的路径ttl.jar
的路径,然后再通过javaagent
指定这个路径请问有没有更加优雅的方式来使用
javaagent
指定ttl.jar
呢?@oldratlee