[英]Loading a class in a .jar file created programmatically
我的目標是:使用SableCC在運行時生成多個解析器/詞法分析器,並加載它們的實例進行解析和詞法分析。
所以我想我的步驟將是:
使用SableCC生成.java
文件。 我想我已經做到了,很好。
將.java
文件編譯為.class
文件。 我使用JavaCompiler
做到了這一點。 我認為這也很好。
將生成的文件放在.jar
文件中,保留文件結構。 我使用此模板作為模板。 使用JarBrowser檢查.jar
文件顯示軟件包的文件結構已保留。 使用它,Jar目錄看起來與常規的.jar
文件相同。 但是,使用JarBrowser,我的jar不會顯示在“ CLASSPATH目錄”下。 這使我相信我的.jar
文件未正確創建。
將.jar
文件加載到URLClassLoader
的實例中。 我正在嘗試使用Class.forName()
加載它,但似乎無法正常工作。
每當執行步驟4時,我都會收到java.lang.ClassNotFoundException
。 有人對這是為什么有任何想法嗎?
原來,我在文件/目錄名稱的前面加了一個斜杠。 我從文件名中截斷了父目錄,但是沒有考慮到父目錄的尾部斜杠,所以/dir1/file1
代替了dir1/file1
。 我猜JAR
文件很挑剔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.