现在,我正在尝试使用纯Java(无buildscript)开发Java项目。我正在从Java 9实现模块概念。在运行带有附加jar文件(第三方库)的Java项目(主类)时遇到麻烦。编译时没有问题,但是当我尝试运行Java时却无法按预期运行。
这是我的目录树image of directory tree
我可以通过执行以下命令来编译该项目(javaFiles.txt包含我要编译的Java文件):
javac --module-path lib -d newout --module-source-path src @javaFiles.txt
但是当我尝试使用此命令运行已编译的.class文件时:
java --module-path newout;libs --module aisco.product.trial/aisco.product.trial.CreateProduct
我收到此错误,好像命令是错误的一样:
$ java --module-path newout;libs --module aisco.product.trial/aisco.product.trial.CreateProduct
Usage: java [options] <mainclass> [args...]
(to execute a class) or java [options] -jar <jarfile> [args...]
(to execute a jar file)
...
我正在使用ubuntu。还有其他方法吗?
而且我也不是很了解classpath,modulepath和其他之间的区别。我总是尝试从模块路径运行它。
我从this link和this link中获得了一些参考。这两个告诉我上面提到的命令。
谢谢!
在所有非Windows系统中,路径分隔符都是冒号(:
),而不是分号(;
)。您需要更改此:
java --module-path newout;libs
至此:
java --module-path newout:libs
Unix外壳使用;
分隔两个连续的命令。因此,您的原始行实际上是在尝试执行以下两个命令:
$ java --module-path newout
$ libs --module aisco.product.trial/aisco.product.trial.CreateProduct