Java Scala URLClassLoader ClassNotFoundException
我需要在运行时从jar文件中加载一些类,但每次尝试时,我都会得到一个ClassNotFoundException。我使用jar命令创建了jar文件。此外,从协议缓冲区消息生成person类 协议缓冲区消息的内容:Java Scala URLClassLoader ClassNotFoundException,java,scala,protocol-buffers,Java,Scala,Protocol Buffers,我需要在运行时从jar文件中加载一些类,但每次尝试时,我都会得到一个ClassNotFoundException。我使用jar命令创建了jar文件。此外,从协议缓冲区消息生成person类 协议缓冲区消息的内容: package testing; option java_outer_classname = "AddressBookProtos"; option java_package = "com.sample"; message AddressBook { repeated Perso
package testing;
option java_outer_classname = "AddressBookProtos";
option java_package = "com.sample";
message AddressBook {
repeated Persons person = 1;
}
message Persons {
required string name =1;
}
Scala文件:
object loaderTest extends App {
val classLoader = new URLCLassLoader(Array(new File("C:\\TEMP\\address.jar").toURI.toURL), this.getClass().getClassLoader())
val personClass = classLoader.loadClass("com.sample.AddressBookProtos$Persons")
}
线程“main”java.lang.ClassNotFoundException中的异常:com.sample.AddressBookProtos$Persons
位于java.net.URLClassLoader$1.run(URLClassLoader.java:202)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:190)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:306)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:247)
在com.ms.qaTools.protobuf.specs.loaderTest$delayedInit$body.apply上(loaderTest.scala:34)
在scala.Function0$class.apply$mcV$sp处(Function0.scala:34)
在scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)中
在scala.App$$anonfun$main$1.apply(App.scala:60)
在scala.App$$anonfun$main$1.apply(App.scala:60)
在scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
位于scala.collection.immutable.List.foreach(List.scala:76)
位于scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:30)
位于scala.App$class.main(App.scala:60)
在com.ms.qaTools.protobuf.specs.loaderTest$.main(loaderTest.scala:10)
在com.ms.qaTools.protobuf.specs.loaderTest.main(loaderTest.scala)您是否打开了jar以确保该类存在于您指定的包下?是的,我确实运行了jar xf命令来检查文件夹结构(com.sample)和文件(AddressBookProtos.java)是否存在。
.java
文件没有帮助。您需要将编译后的.class
文件放在正确的包(com.sample
)中。