[英]Where did this class come from?
您將如何確定從哪個類(或可能是資源)加載?
我正在嘗試確切地從哪里加載一個類。 有誰知道你是否能找到以下內容:
類Class
有一個實例方法getClassLoader()
,它返回對加載它所代表的類的類加載器的引用。 請注意,這可以返回null
。 看到這里 。
所以,如果你想知道哪個類加載器加載了String
(就像一個例子),你可以這樣做:
ClassLoader loader = String.class.getClassLoader();
要么:
ClassLoader loader = "I'm a String".getClass().getClassLoader();
例如,您可以通過調用MyClass.class.getResource(“MyClass.class”)來獲取URL。
對於第一類解決方案是MyClass.class.getProtectionDomain().getCodeSource().getLocation()
。 (實際上,可能有一個null
ProtectionDomain
或者可能沒有一個CodeSource
。我也拋出一個SecurityException
。
我會使用-verbose:class
命令行選項,將輸出保存到文本文件,然后使用grep(或DOS查找,如果你是Windows)來查看有關如何加載該類的詳細信息。
如果你有一個類insta.getClass()的實例.getClassLoader()。getName() - >這是加載類的類加載器
insta.getClass()。getProtectionDomain()。getCodeSource()。getLocation() - 這個類是從哪里加載的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.