从命令行调用 Scala 程序

Calling a Scala program from command line

我知道这似乎是一个初学者问题,而且有很多 相关的 问题,但我相信我的问题有点具体,我没有找到答案。

我的树状结构如下:

root
   jsoup-1.8.2.jar
   bin
      miscellaneous
         md2html.class

bin目录是Eclipse生成的,我不负责编译。以下所有命令均从 bin 开始执行。起初,我忘记在类路径中包含 Jsoup :

scala miscellaneous.markdown.md2html C:\Users\Dici\Desktop\fancy-examples\test\test.md --theme amazon

逻辑上导致了以下错误:java.lang.NoClassDefFoundError: org/jsoup/nodes/Document,但我仍然能够通过注释 Jsoup 相关代码运行 md2html

然后,我将它添加到类路径中:

scala -classpath "..\jsoup-1.8.2.jar" miscellaneous.markdown.md2html C:\Users\Dici\Desktop\fancy-examples\test\test.md --theme apple

我希望它能起作用,但它不起作用:

No such file or class on classpath: miscellaneous.markdown.md2html

为什么向类路径添加内容会破坏有效命令?

当您设置 class 路径时,您删除了 md2html.class 文件所在的当前目录。

scala -classpath "..\jsoup-1.8.2.jar:.:" miscellaneous.markdown.md2html
     C:\Users\Dici\Desktop\fancy-examples\test\test.md --theme apple

windows 的 class 路径分隔符是 ;,linux 是 :。当前目录的 . 是 shorthand。提供 class 文件的绝对路径可能更好,但我认为您需要多个 class。 . 将包括该目录中的所有 class 个文件。