如何使用第三方库(jar文件)运行Java模块类(java 9拼图项目)?

问题描述 投票:0回答:1

现在,我正在尝试使用纯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 linkthis link中获得了一些参考。这两个告诉我上面提到的命令。

谢谢!

java java-9 jigsaw
1个回答
0
投票

在所有非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
© www.soinside.com 2019 - 2024. All rights reserved.