java – 从jar文件运行特定的类main函数.导入似乎不起作用
发布时间:2020-12-15 08:49:45 所属栏目:Java 来源:网络整理
导读:我有一个jar文件没有在manifest中指定它的主类. 所以我按照这里给出的答案: How to run a class from Jar which is not the Main-Class in its Manifest file 它似乎试图从这个类运行main.但是,由于某种原因,从这个jar文件中导入其他类似乎已被破坏. 这是我
我有一个jar文件没有在manifest中指定它的主类.
所以我按照这里给出的答案: How to run a class from Jar which is not the Main-Class in its Manifest file 它似乎试图从这个类运行main.但是,由于某种原因,从这个jar文件中导入其他类似乎已被破坏. 这是我的问题的最小化版本: jar tf test.jar 得到: META-INF/ META-INF/MANIFEST.MF ClassIWantToRun.class something/ something/something/ something/something/something/ClassA.class 用jd-gui查看的ClassIWantToRun.class的来源似乎是: import something.something.something.ClassA; public class ClassIWantToRun { public static void main(String[] args) { int x = ClassA.comeMethod(); } } 运行此: java -cp test.jar ClassIWantToRun 给了我例外: Exception in thread "main" java.lang.NoClassDefFoundError: com/ibm/OS4690/FlexosException at ClassIWantToRun.main(ClassIWantToRun.java:7) Caused by: java.lang.ClassNotFoundException: com.ibm.OS4690.FlexosException at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) ... 1 more 我只知道Java的基础知识,但似乎即使使用以下行也找不到ClassA:import something.something.something.ClassA 解决方法
该异常表示您需要将其他一些JAR添加到类路径中. test.jar中的类依赖于其他类.例如在com.ibm.OS4690.FlexosException上.
您可以尝试搜索另一个JAR文件(在您的test.jar所在的位置),以便它包含FlexosException.class文件.找到后,运行test.jar java -cp test.jar;<path_to_another_jar_here> ClassIWantToRun (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |