簡體   English   中英

Java:在線程中實例化來自外部jar的類上的ClassNotFoundException

[英]Java: ClassNotFoundException on class from external jar being instantiated in a thread

我已經制作了一個庫,並將其導出到一個jar文件中,然后嘗試將其導入到我的eclipse項目中並使用。 Eclipse表示沒有問題,但是當我調試應用程序時,它進入新線程並實例化該對象,然后引發ClassNotFoundException

ClassNotFoundException(Throwable)。(String,Throwable)行:217 ClassNotFoundException(Exception)。(String,Throwable)行:不可用ClassNotFoundException。(String)行:不可用
URLClassLoader $ 1.run()行:不可用
AccessController.doPrivileged(PrivilegedExceptionAction,AccessControlContext)行:不可用[本機方法] Launcher $ ExtClassLoader(URLClassLoader).findClass(String)行:不可用Launcher $ ExtClassLoader.findClass(String)行:不可用Launcher $ ExtClassLoader(ClassLoader)。 loadClass(String,boolean)行:不可用
Launcher $ AppClassLoader(ClassLoader).loadClass(String,boolean)行:不可用Launcher $ AppClassLoader.loadClass(String,boolean)行:不可用
Launcher $ AppClassLoader(ClassLoader).loadClass(String)行:不可用HKServiceListener.run()行:33 Thread.run()行:不可用

它找不到的類是com.snow.IO.SnowTcpServer 我已經在類路徑中包含了外部jar,並且沒有編譯錯誤。 它僅在運行時拋出。 我什import com.snow.IO.SnowTcpServer在文件頂部也應該import com.snow.IO.SnowTcpServer

為什么它不能識別我的班級?我如何才能做到這一點?

您的類路徑有問題,沒有其他原因導致類加載無法在您的類中找到文件,請嘗試手動運行您的類(已編譯的類),而不會使用命令行進行蝕

java -cp [your jars separated with ";" - widows or ":" - *nix] com.your.Class

例如:

java -cp /libs/lib1.jar:/libs2/* com.your.Class

如果您正在運行企業應用程序,請確保Jar也可用於部署。 這需要額外配置。
如果是J2SE應用程序,請檢查您的jar是否在run_configuration屬性的classpath選項卡中可見。

如果這不起作用,則嘗試將jar文件明確包含在run_configurations選項的類路徑選項中。

事實證明,該錯誤僅是在使用調試器時引起的。 這與我進入的代碼在外部jar文件中而不在我的源文件中有關。

暫無
暫無

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

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