gpt4 book ai didi

java - 无法使用文件中的类路径运行 java 程序并在 cli 上使用 @

转载 作者:行者123 更新时间:2023-11-30 01:41:52 25 4
gpt4 key购买 nike

当我从命令行执行带有文件中的类路径的 java 程序时,遇到了一个奇怪的行为。我不确定这是否与 Windows、Java 或者 cli 有关。

测试类:

package de.test;

public class Playground {

public static void main(String[] args) throws Exception {
System.out.println("hello world");
}

}

编译后我可以使用命令运行它

java -classpath "C:\Users\TEST\eclipse-workspace\Playground\target\classes" de.test.Playground

但是,如果我有一个包含内容的文件cp.txt(这只是类路径参数)

-classpath "C:\Users\TEST\eclipse-workspace\Playground\target\classes"

然后我就跑

java "@cp.txt" de.test.Playground

我收到错误java.lang.ClassNotFoundException:de.test.Playground。相同,但 @cp.txt 周围没有引号。

我使用 Oracle JDK 11.0.2 和 OpenJDK 11.0.5 对此进行了测试。两者表现出相同的行为。

有谁知道为什么会发生这种情况吗?每当类路径太长时,Eclipse 会将其放入文件中并使用 @ 命令行来运行程序。但这不起作用,如上所示。因此,每当我有太多依赖项时,我就无法再从 Eclipse 中运行 Java 程序。

最佳答案

在你的命令行参数文件 cp.txt 转义反斜杠(\),方法是用双反斜杠 (\\) 替换它们,或使用正斜杠 (/) 代替反斜杠 (\)。

参见The java Command - java Command-Line Argument Files :

  • Because backslash (\) is an escape character, a backslash character must be escaped with another backslash character.

关于java - 无法使用文件中的类路径运行 java 程序并在 cli 上使用 @,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59661651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com