java -jar with cf -e 在 Java 14 上不工作

java -jar with cf -e not working on Java 14

我正在尝试 javac + java + java -jar 以更多地参与模块。

我正在使用最新的 JDK 14.

我有这个简单的 class:

package defaultpackage;
public class Main{
    public static final void main(final String args[]){
        System.out.println("HI WITH: "+java.util.Arrays.toString(args));
    }
}

我创建的目录没有问题:

javac -d . Main.java

稍后我可以创建 jar 文件来混合一些值,如下所示:

jar --create --file Jar.jar -e defaultpackage.Main defaultpackage
jar -cfe Jar.jar defaultpackage.Main defaultpackage
jar cfe Jar.jar defaultpackage.Main defaultpackage

他们都在清单文件中使用 class 创建 jar,我可以 运行 使用这个简单的命令:

java -jar Jar.jar

但我无法执行此命令,因为它与之前的命令略有不同,也许不能混合使用,但我认为可以:

jar -cf Jar.jar -e defaultpackage.Main defaultpackage 

我想说的是创建具有入口点 defaultpackage.Main

的 Jar.jar 文件

但是说。

jar -cf Jar.jar -e defaultpackage.Main defaultpackage
-e : no such file or directory
defaultpackage.Main : no such file or directory

我也试过了,但得到了同样的反应:

jar -cf Jar.jar defaultpackage -e defaultpackage.Main 

并且:

jar -cf Jar.jar -e defaultpackage/Main.class defaultpackage

但也有同样的反应。

如何让这个命令生效?我不能混合使用 -cf-e?

I could not mix -cf plus -e?

正确。这些选项有点像古老的 Unix tar 命令,但不完全相同。您不能同时使用组合字母和单独的选项字母。