【发布时间】:2023-03-05 15:47:01
【问题描述】:
我正在编写一个程序,该程序连接到一个包含几个 JAR 文件的目录的 web 主机。然后,GUI 会显示 JAR 名称,当您双击名称时,它将打开 JAR 文件。
我遇到的问题是,并不是所有的 JAR 文件都在同一个地方有 main 方法,所以我需要一些方法来找到主类。
我尝试过这样的方法:
File file = new File("website/test.jar");
JarFile jar = new JarFile(file);
String mainClass = jar.getManifest().getMainAttributes().get("Main-Class").toString();
但是,我得到:
Exception in thread "main" java.util.zip.ZipException: error in opening zip file
在创建 JarFile 对象的行上。我想到了两种解决方案:遍历 JAR 中的所有类文件并搜索包含 main 方法的类文件,或者在目录中创建一个文本文件,告诉每个 JAR 的主文件。
我更喜欢使用第一个解决方案,因为它实际上并不需要我每次上传另一个 JAR 时都执行额外的步骤。但是,我担心它是一种“蛮力”替代方案,而且感觉效率低下。
你们中有人遇到过类似的问题吗? 非常感谢!
【问题讨论】: