Java Scala URLClassLoader ClassNotFoundException

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

我需要在运行时从jar文件中加载一些类,但每次尝试时,我都会得到一个ClassNotFoundException。我使用jar命令创建了jar文件。此外,从协议缓冲区消息生成person类

协议缓冲区消息的内容:

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
)中。