gpt4 book ai didi

java - 当目录名称中存在句点时使用 Java.exe 运行

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:18:19 24 4
gpt4 key购买 nike

我正在尝试运行我构建的 java 程序,但我想从特定目录运行它。当指定我要运行的类文件的相对路径时,该路径包含一个带有句点的目录,它似乎在绊倒java;因此,例如我尝试运行:

java -classpath myPath/myPath-1.2.3/myLongPath myPath/myPath-1.2.3/myLongPath/myProg

Java 错误提示找不到类 (NoClassDefFoundError);这是有道理的,因为我看到 java 在与我指定的目录不同的目录中查找;它正在寻找: myPath/myPath-1/2/3/myLongPath代替: myPath/myPath-1.2.3/myLongPath

尽我所能,我无法弄清楚如何向 java.exe 指定我希望它查找的目录包含句点。我试过\转义句点,但这无济于事。以前有人遇到过这个问题吗?顺便说一句,我在 gnome 终端内的 linux 上运行。感谢您的帮助。

最佳答案

调用 java 的最后一个参数是要运行的类的名称。这不是文件名,而是类名。它包括完整的包名称(除非类在默认包中),由点(不是斜杠)分隔。类名和任何包名都不能包含点。表示包路径的文件夹不得包含在类路径中包含的目录中(只有类文件夹的顶级目录应该在那里)。

在你的例子中,这似乎只是 myProg,但要确定,具有 main 方法的类的类名(包括包名)是什么?

例子:

如果我有一个类mypackage.mysubpackage.MainClass,类文件在/home/me/project/1.3/build/mypackage/mysubpackage/MainClass.class,那么运行该类的命令将是 java -cp/home/me/project/1.3/build mypackage.mysubpackage.MainClass

关于java - 当目录名称中存在句点时使用 Java.exe 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2287118/

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