我在嘗試在代碼中執行特定的jar文件時遇到了問題。我的目標是創建GUI應用程序(嚮導),用戶在其中選擇各種XML文件,選擇要執行的jar文件併爲其提供輸入xml。當在代碼中執行jar時java.lang.NoSuchMethodException
要執行罐子,我使用此代碼: 1: URL[] urls = fillUrls(); 2: loader = new URLClassLoader(urls); 3: Class<?> cls = loader.loadClass(className); 4: Method execute = cls.getDeclaredMethod(methodName, Properties.class, StringBuffer.class, StringBuffer.class, IContext.class); // method name is declared as: // private final String methodName = "execute";
方法fillUrls上線,其通過執行所需的罐執行罐子和其他庫的1名返回的URL來運行。如果省略,第3行將引發異常。當方法到達第4行時,拋出java.lang.NoSuchMethodException。
奇怪的是,在jar中執行的類實現了一個接口,所以沒有機會不會有這樣的方法。爲了使它更有趣,我用於測試的jar文件運行完美,由其他人提供的罐子不會...
所以它可能是我的代碼有問題,或者它是如何的問題文件輸出?有什麼方法可以證明嗎?導出的jar來自maven2項目。
這應該如何幫助?它只會產生「URLClassLoader.newInstance無法解析爲類型」錯誤。另外,我想問題的原因是在第4行。 – dallows
newInstance是URLCLassloader的靜態方法,如果您安裝了安全管理器,則正在調用securityManager.checkPackageAccess。 –