簡體   English   中英

在運行時將文件夾添加到Java類路徑

[英]Adding folders to java classpath at runtime

我想使用class.forName從另一個項目加載一個類(包含在jar文件中)。 我在stackoverflow中找到了以下代碼。 如果我知道Jar文件的名稱,它就可以正常工作。

File f = new File("D:/workspace/secondproject/lib/temp.jar");
            URI u = f.toURI();
            URLClassLoader urlClassLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
            Class<URLClassLoader> urlClass = URLClassLoader.class;
            Method method = urlClass.getDeclaredMethod("addURL", new Class[]{URL.class});
            method.setAccessible(true);
            method.invoke(urlClassLoader, new Object[]{u.toURL()});
            try {
              Class.forName ("pk1.foo");
            }
            catch (Exception ex) {
               System.out.println ("Failed.");
            }

但是,當我傳遞包含jar文件的文件夾地址而不是jar文件的地址時,該代碼不起作用。 在上面的示例D:/ workspace / secondproject / lib中

我不知道為什么它不起作用。 我希望當我傳遞文件夾時,它會搜索該目錄中的所有文件。 請讓我知道我做錯了什么以及如何在運行時將文件夾傳遞給classPath。

簡而言之:這是行不通的。

您必須遍歷文件夾中的文件並添加它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM