_JAVA_OPTIONS 和 CLASSPATH 组合
_JAVA_OPTIONS and CLASSPATH combination
我尝试将代理附加到程序。
我将 _JAVA_OPTIONS 用于以下情况:
export _JAVA_OPTIONS='-javaagent:/java/libs/doeke_sfjl_ui/sfjl_ui_widget_agent.jar'
但是它需要一个 jar 文件才能 运行。
我尝试使用以下方法解决该问题:
export CLASSPATH=/java/libs/javassist-3.26.0.GA/javassist-3.26.0.GA.jar
但我仍然得到:
ClassNotFoundException: javassist.expr.ExprEditor
住在javassist-3.26.0.GA.jar
。
如何在代理 运行ning 之前添加 javassist-3.26.0.GA.jar
?
此处出现问题的方式多种多样:
您应该避免使用这些环境变量。 java 背后的想法是您可以同时 运行 8 个不同的应用程序。特别是在 windows 上,环境变量是 'global';您可以为每个进程指定它们,尤其是在 unix 上,但是为什么不手动使用这些开关呢?此外,绝大多数教程等都假定您的默认类路径至少包括 .
(当前目录),您在此处的尝试覆盖了它,所以您有点搞砸了您的 java通过这样做安装。为什么你不能 运行 java -cp whatever -javaagent:thingie.jar
?
java 代理 运行 在单独的 space VM 中,并且 space 没有像您指定的那样享受类路径它。最简单的解决方法是让代理 jar 修复它自己的类路径,方法是附带一个列出其 Class-Path 的清单条目。这意味着您需要在代理 jar 中有一个名为 META-INF/MANIFEST.MF
的文件,里面是一行文本:Boot-Class-Path: lib/a.jar lib/b.jar
其中 [1] space 是分隔符,[2] 正斜杠是用于分隔路径部分,即使在 windows 上也是如此,并且 [3] 它是相对于包含此 jar 的目录的。请注意,通常您会为 java 应用程序使用 Class-Path:
; Boot-Class-Path
专门针对 java 代理人。
有关详细信息,请参阅 section Manifest Attributes in Instrumentation's documentation。
我尝试将代理附加到程序。
我将 _JAVA_OPTIONS 用于以下情况:
export _JAVA_OPTIONS='-javaagent:/java/libs/doeke_sfjl_ui/sfjl_ui_widget_agent.jar'
但是它需要一个 jar 文件才能 运行。 我尝试使用以下方法解决该问题:
export CLASSPATH=/java/libs/javassist-3.26.0.GA/javassist-3.26.0.GA.jar
但我仍然得到:
ClassNotFoundException: javassist.expr.ExprEditor
住在javassist-3.26.0.GA.jar
。
如何在代理 运行ning 之前添加 javassist-3.26.0.GA.jar
?
此处出现问题的方式多种多样:
您应该避免使用这些环境变量。 java 背后的想法是您可以同时 运行 8 个不同的应用程序。特别是在 windows 上,环境变量是 'global';您可以为每个进程指定它们,尤其是在 unix 上,但是为什么不手动使用这些开关呢?此外,绝大多数教程等都假定您的默认类路径至少包括
.
(当前目录),您在此处的尝试覆盖了它,所以您有点搞砸了您的 java通过这样做安装。为什么你不能 运行java -cp whatever -javaagent:thingie.jar
?java 代理 运行 在单独的 space VM 中,并且 space 没有像您指定的那样享受类路径它。最简单的解决方法是让代理 jar 修复它自己的类路径,方法是附带一个列出其 Class-Path 的清单条目。这意味着您需要在代理 jar 中有一个名为
META-INF/MANIFEST.MF
的文件,里面是一行文本:Boot-Class-Path: lib/a.jar lib/b.jar
其中 [1] space 是分隔符,[2] 正斜杠是用于分隔路径部分,即使在 windows 上也是如此,并且 [3] 它是相对于包含此 jar 的目录的。请注意,通常您会为 java 应用程序使用Class-Path:
;Boot-Class-Path
专门针对 java 代理人。
有关详细信息,请参阅 section Manifest Attributes in Instrumentation's documentation。