类加载器无法识别编程jar文件

类加载器无法识别编程jar文件,jar,zip,classloader,Jar,Zip,Classloader,我有一个程序,可以创建java源代码文件,编译它们以创建类文件,并使用java.utils.jar将类文件“jar-up”到一个jar中。当生成的jar被放置在另一个应用程序的lib目录中时,类应该被识别。除非创建的类文件无法识别。因此,我使用WinZip压缩相同的类文件,将“zip”重命名为“jar”,将新的jar放在lib目录中,文件可以很好地识别。使用WinZip查看第一个(以编程方式生成的)jar和WinZip创建的jar,它们看起来完全相同。相同的路径、相同的原始大小、相同的压缩大小。

我有一个程序,可以创建java源代码文件,编译它们以创建类文件,并使用java.utils.jar将类文件“jar-up”到一个jar中。当生成的jar被放置在另一个应用程序的lib目录中时,类应该被识别。除非创建的类文件无法识别。因此,我使用WinZip压缩相同的类文件,将“zip”重命名为“jar”,将新的jar放在lib目录中,文件可以很好地识别。使用WinZip查看第一个(以编程方式生成的)jar和WinZip创建的jar,它们看起来完全相同。相同的路径、相同的原始大小、相同的压缩大小。还尝试通过java.utils.zip创建一个zip并重命名它。同样的问题。有人知道Java类加载器无法识别编程zip/jar文件的原因吗?

已解决。也许这会帮助别人。ZipEntry(和JarEntry)的参数必须使用正斜杠(“/”)作为名称分隔符,以便类加载器正确识别包含的文件。特别是,其他分隔符,如File.getAbsolutePath()返回的分隔符,虽然java.utils.jar和WinZip似乎很乐意接受,但类加载器不会识别它们