首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在高山/ Jprofile 10中运行jpenable时的UnsatisfiedLinkError

在高山/ Jprofile 10中运行jpenable时的UnsatisfiedLinkError
EN

Stack Overflow用户
提问于 2018-05-21 21:37:49
回答 1查看 1.9K关注 0票数 2

当运行jpenable以允许高寒中的Jprofiler10分析时:3.3容器运行JDK 8时,我将得到一个UnsatisfiedLinkError异常。有什么想法吗?

代码语言:javascript
复制
ERROR: The agent could not be loaded: Picked up _JAVA_OPTIONS: -Xmx1024m
Exception in thread "main" java.lang.UnsatisfiedLinkError: /opt/jprofiler10/bin/
linux-x64/libattach.so: Error relocating /opt/jprofiler10/bin/linux-x64/libattac
h.so: __strcpy_chk: symbol not found
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
at java.lang.Runtime.load0(Runtime.java:809)
at java.lang.System.load(System.java:1086)
at com.jprofiler.attach.b.b.b.load(ejt:6)
at com.jprofiler.attach.b.b.i.loadLibraryPath(ejt:49)
at com.jprofiler.attach.a.b(ejt:92)
at com.jprofiler.attach.a.a(ejt:74)
at com.jprofiler.attach.a.main(ejt:116)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-24 16:48:52

所以,我会自己回答问题。

首先,我注意到ldd显示大多数java本机库都被破坏(而不是解析依赖库):3.5openjdk8-jre包。我在这里找到了一个配置加载库路径的解决方案:https://github.com/docker-library/openjdk/issues/77

创建一个/etc/ld-MUSL-x86_64路径,其中包含以下内容,修复了我在ldd中发现的大多数库问题。

代码语言:javascript
复制
/lib
/usr/lib
/usr/local/lib
/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64
/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/jli
/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server
/opt/jprofiler10.1.1/bin/linux-x64/

但是,在/opt/jprofiler10.1.1/bin/linux-x64/libattach.so tar文件中提供的Jprofiler10仍然损坏,所以我删除了它,并使用了包含在/usr/lib/jvm/java-1.8OpenJDK/jre/lib/ and 64目录中的libattach.so。

下面的Dockerfile显示了我是如何构建容器的-并修复了这些问题。

代码语言:javascript
复制
FROM alpine:3.5
RUN apk --no-cache add \
    openjdk8-jre-base \
    libstdc++
COPY ld-musl-x86_64.path /etc/ld-musl-x86_64.path
ADD jprofiler_linux_10_1_1.tar /opt/
RUN rm /opt/jprofiler10.1.1/bin/linux-x64/libattach.so 

在这之后-我能把集装箱带到农场来。

最后的步骤是将shell执行到容器中,并运行jpenable,以使Jprofiler工具能够创建到jvm的连接。

例如/opt/jprofiler10.1.1/bin/jpenable

然后,我能够在端口8849上连接并分析应用程序。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50456928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档