簡體   English   中英

從Java Web Start中的同一jar內的另一個類加載類失敗

[英]load class from another class within same jar in java web start fails

我有一個通過Web Start運行的javafx應用程序。 在我的fx應用程序中,我嘗試使用ClassLoader加載類,如下面的代碼所示。 傳遞的參數是程序包名稱,例如“ com.example.project.abcd”

public final static List<Class<?>> find(final String scannedPackage) 
    {
        final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
        final String scannedPath = scannedPackage.replace(DOT, SLASH);
        final Enumeration<URL> resources;
        try {
            resources = classLoader.getResources(scannedPath);
        } catch (IOException e) {
            throw new IllegalArgumentException(String.format(BAD_PACKAGE_ERROR, scannedPath, scannedPackage), e);
        }
        final List<Class<?>> classes = new LinkedList<Class<?>>();
        while (resources.hasMoreElements()) {
            final File file = new File(resources.nextElement().getFile());
            classes.addAll(find(file, scannedPackage));
        }
        return classes;
    }

現在,我無法通過Java Web Start運行“ com.example.project.abcd”包中的所有類,但通過IDE可以正常運行。

我正在使用JDK 7,JavaFX 2。

按照http://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/faq.html#s211 Thread.currentThread()。getContextClassLoader()應該可以,但事實並非如此!

嘗試通過網絡/谷歌搜索,但徒勞無功。 還檢查了http://lopica.sourceforge.net/faq.html#customcl並嘗試按建議使用URLClassLoader。 但這並沒有效果(盡管不知道應將什么傳遞給參數“ urls”)

任何幫助都非常感謝。

我認為這在IDE中有效,因為您的BIN / classes目錄用於獲取所有文件。 Webstart-Mode中 ,所有類都在JAR內部。

暫無
暫無

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

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