0

现在我正在尝试用纯java(没有内置脚本)开发一个Java项目。我正在实现 Java 9 中的模块概念。在运行带有附加 jar 文件(第三方库)的 Java 项目(主类)时遇到了麻烦。编译时我没有问题,但是当我尝试运行 java 时,它无法按预期运行。

我可以通过执行这个命令来编译这个项目(javaFiles.txt 包含我想要编译的 java 文件):

javac --module-path lib -d newout --module-source-path src @javaFiles.txt

但是当我尝试使用此命令运行编译的 .class 文件时:

java --module-path newout;libs --module com.example.trial/com.example.trial.CreateProduct

我收到这个错误,好像它是一个错误的命令:

$ java --module-path newout;libs --module com.example.trial/com.example.trial.CreateProduct
Usage: java [options] <mainclass> [args...]
       (to execute a class) or  java [options] -jar <jarfile> [args...]
       (to execute a jar file)
...

我正在使用ubuntu。还有其他方法吗?

而且我真的不知道类路径、模块路径和其他任何东西之间的区别。我总是尝试从模块路径运行它。

我从这个链接这个链接得到了一些参考。那两个告诉我上面提到的命令。

谢谢!

4

1 回答 1

4

所有非 Windows 系统中的路径分隔符都是冒号 ( :),而不是分号 ( ;)。你需要改变这个:

java --module-path newout;libs

对此:

java --module-path newout:libs

Unix shell;用来分隔两个连续的命令。因此,您的原始行实际上是在尝试执行这两个命令:

$ java --module-path newout
$ libs --module com.example.trial/com.example.trial.CreateProduct
于 2020-02-27T05:30:19.817 回答