亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

查找java類是從哪里加載的

查找java類是從哪里加載的

繁星coding 2019-07-02 16:05:33
查找java類是從哪里加載的有誰知道如何通過編程找到java類加載器實際從哪里加載類?我經常在大型項目上工作,在這些項目中類路徑會變得非常長,而手動搜索實際上并不是一種選擇。我最近有一個問題其中,類加載器加載一個不正確的類版本,因為它位于兩個不同位置的類路徑上。那么,如何讓類加載程序告訴我實際的類文件來自于磁盤上的哪個位置呢?編輯:如果類加載程序由于版本錯配(或其他原因)而實際無法加載類,那么在讀取類之前,我們是否可以找到它試圖讀取的文件呢?
查看完整描述

3 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

下面是一個例子:

package foo;public class Test{
    public static void main(String[] args)
    {
        ClassLoader loader = Test.class.getClassLoader();
        System.out.println(loader.getResource("foo/Test.class"));
    }}

這是打印出來的:

file:/C:/Users/Jon/Test/foo/Test.class


查看完整回答
反對 回復 2019-07-02
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

另一種查找類從何處加載的方法(不操作源)是使用以下選項啟動Java VM:-verbose:class


查看完整回答
反對 回復 2019-07-02
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

這就是我們所使用的:

public static String getClassResource(Class<?> klass) {
  return klass.getClassLoader().getResource(
     klass.getName().replace('.', '/') + ".class").toString();}

這將取決于ClassLoader實現:getClass().getProtectionDomain().getCodeSource().getLocation()


查看完整回答
反對 回復 2019-07-02
  • 3 回答
  • 0 關注
  • 857 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號