我想知道运行特定Java应用程序时我需要哪些共享库。我知道如何获取Java解释器的库列表(ldd java),然后应用程序继续使用标准Java API中的GUI和套接字。
所以基本上我想知道是否有一些方法可以找出rt.jar中的标准Java类(例如java.io.Socket或javax.swing.JFrame)将在后台加载什么共享库,简短详尽的路径测试。
TIA!
答案 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