如何找到在Linux上运行Java类所需的共享库?

时间:2013-11-25 17:19:19

标签: java linux shared-libraries

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

所以基本上我想知道是否有一些方法可以找出rt.jar中的标准Java类(例如java.io.Socket或javax.swing.JFrame)将在后台加载什么共享库,简短详尽的路径测试。

TIA!

2 个答案:

答案 0 :(得分:0)

您可以获得source code,链接位于左侧(位于“群组”上方)。显然,它会因JDK而异。假设您想要更多ldd java

答案 1 :(得分:0)

如果源不可用,那么您可以通过自定义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

运行所需的类