gpt4 book ai didi

java - 如何找出在 Linux 上运行 Java 类需要哪些共享库?

转载 作者:太空宇宙 更新时间:2023-11-04 04:08:31 25 4
gpt4 key购买 nike

我想知道运行特定 Java 应用程序时需要哪些可用的共享库。我知道如何获取 Java 解释器 (ldd java) 的库列表,但应用程序会继续使用标准 Java API 中的 GUI 和套接字执行操作。

所以基本上我想知道是否有某种方法可以找出 rt.jar 中的标准 Java 类(例如 java.io.Socket 或 javax.swing.JFrame)将在幕后加载哪些共享库,而无需进行详尽的路径测试。

TIA!

最佳答案

如果源不可用,那么您可以通过自定义ClassLoader加载类并重写loadClass()以报告正在加载哪些类:

public class CustomClassLoader extends ClassLoader{
public CustomClassLoader(ClassLoader parent) {
super(parent);
}

@Override
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
System.out.println(name);
return super.loadClass(name, resolve);
}

}

然后使用 JVM 标志运行所需的类 -Djava.system.class.loader=CustomClassLoader

关于java - 如何找出在 Linux 上运行 Java 类需要哪些共享库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20199208/

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