scala jar文件由java执行 - cp与jar

xhu*_*dik 2 java scala jar

如果我跑:

java -jar corpus-tools-0.0.2.jar removeTSfromCorpus
Run Code Online (Sandbox Code Playgroud)

它给了我错误:

Failed to parse the trailing argument list: 'removeTSfromCorpus'
Run Code Online (Sandbox Code Playgroud)

但是,如果我跑:

java -cp corpus-tools-0.0.2.jar removeTSfromCorpus
Run Code Online (Sandbox Code Playgroud)

它无缝地工作.scala-library包含在依赖项中(MANIFEST).-cp和-jar有什么区别?我认为在这种情况下应该是平等的

谢谢!

Bri*_*new 5

java -cp jarfile classname
Run Code Online (Sandbox Code Playgroud)

使用指定的classpath(-cp)执行classname .-cp您可以简单地依靠CLASSPATH变量来确定java查找类的位置,而不是使用该选项.

java -jar jarfile
Run Code Online (Sandbox Code Playgroud)

将使用指定的.jar文件并执行文件MANIFEST中Main-Class定义的.jar文件.这是java与独立应用程序的近似值.应用程序打包在.jar文件中,MANIFEST指定该.jar文件中的入口点.有关详细信息,请参见此处

所以(回答你原来的问题!)你的第一个例子将运行MANIFEST中指定的类,并试图以removeTSFromCorpus某种方式解释为命令行参数.第二个示例将CLASSPATH设置为.jar文件,然后removeTSFromCorpus作为类运行.