簡體   English   中英

將類加載到以編程方式創建的.jar文件中

[英]Loading a class in a .jar file created programmatically

我的目標是:使用SableCC在運行時生成多個解析器/詞法分析器,並加載它們的實例進行解析和詞法分析。

所以我想我的步驟將是:

  1. 使用SableCC生成.java文件。 我想我已經做到了,很好。

  2. .java文件編譯為.class文件。 我使用JavaCompiler做到了這一點。 我認為這也很好。

  3. 將生成的文件放在.jar文件中,保留文件結構。 我使用模板作為模板。 使用JarBrowser檢查.jar文件顯示軟件包的文件結構已保留。 使用它,Jar目錄看起來與常規的.jar文件相同。 但是,使用JarBrowser,我的jar不會顯示在“ CLASSPATH目錄”下。 這使我相信我的.jar文件未正確創建。

  4. .jar文件加載到URLClassLoader的實例中。 我正在嘗試使用Class.forName()加載它,但似乎無法正常工作。

每當執行步驟4時,我都會收到java.lang.ClassNotFoundException 有人對這是為什么有任何想法嗎?

原來,我在文件/目錄名稱的前面加了一個斜杠。 我從文件名中截斷了父目錄,但是沒有考慮到父目錄的尾部斜杠,所以/dir1/file1代替了dir1/file1 我猜JAR文件很挑剔。

暫無
暫無

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

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