我创建了一个具有以下结构的jar
abc.jar
/--META-INF
/--MANIFEST.MF
/--dependancies
/--depend1.jar
/--depend2.jar
/--depend3.jar
/--com
/--mycompany
/--JettyLauncher.class
/--otherclass.class
我的清单将classpath和主类声明为:
Class-Path: .:./dependancies
Main-Class: com.mycompany.JettyLauncher
但是,如果我无法以任何方式使用scala
命令运行此jar。
如果我尝试运行scala abc.jar
,则会收到错误java.lang.ClassNotFoundException: com.mycompany.JettyLauncher
(这意味着它确实阅读了清单!)
如果我尝试运行scala -classpath abc.jar com.mycompany.JettyLauncher
,我会为依赖的jar中的一个类获得java.lang.ClassNotFoundException
。
我假设这是因为-classpath参数覆盖了清单中的类路径。
当我从罐子里取出槽子并将它放在abc.jar旁边的文件夹中时,我终于能够运行我的罐子了
然后scala -classpath "abc.jar:dependancies/*:." com.mycompany.JettyLauncher
终于奏效了。
但是当jar中包含dependancies文件夹时,有没有办法让它工作?
非常感谢,
阿里扎