gpt4 book ai didi

java - 无法使用完全限定名称从 CMD 启动 java 文件

转载 作者:行者123 更新时间:2023-12-02 13:29:09 25 4
gpt4 key购买 nike

根据标题,我可以很好地编译该类,但无法运行它(尽管使用完全限定名称)

Boss@DESKTOP-F8O3V2Q /cygdrive/c/eclipse/workspace/MVN/3cx-driver/src
$ java com.software._3cx.main.PBXConnection
Error: Could not find or load main class com.software._3cx.main.PBXConnection

PBXConnection.java

package com.software._3cx.main;

public class PBXConnection extends Proxy {

public PBXConnection(ServerSettings settings) {
super(settings);
}

public static void main(String args[]) {
....

这是因为包名中含有_下划线吗?

树输出

C:\eclipse\workspace\MVN\3cx-driver\src>tree
Folder PATH listing for volume OS
Volume serial number is 00000074 D019:C44D
C:.
└───com
└───software
└───_3cx
└───main

目录:

C:\eclipse\workspace\MVN\3cx-driver\src\com\software\_3cx\main>dir
Volume in drive C is OS
Volume Serial Number is D019-C44D

Directory of C:\eclipse\workspace\MVN\3cx-driver\src\com\software\_3cx\main

06/04/2017 16:31 <DIR> .
06/04/2017 16:31 <DIR> ..
06/04/2017 16:22 115 EventProcessor.java
06/04/2017 16:31 1,434 PBXConnection.class
06/04/2017 16:21 1,994 PBXConnection.java
3 File(s) 3,543 bytes
2 Dir(s) 355,750,649,856 bytes free

编辑:

Boss@DESKTOP-F8O3V2Q /cygdrive/c/eclipse/workspace/MVN/3cx-driver/src
$ javac -cp C:/Apache/apache-tomcat-7.0.56/lib/orderlycalls.jar com/software/_3cx/main/PBXConnection.java

Boss@DESKTOP-F8O3V2Q /cygdrive/c/eclipse/workspace/MVN/3cx-driver/src
$ java -cp C:/Apache/apache-tomcat-7.0.56/lib/orderlycalls.jar com.software._3cx.main.PBXConnection
Error: Could not find or load main class com.software._3cx.main.PBXConnection

编辑:我实际上正在使用 Java 7(虽然 Java 8 正在运行),但它不是

Boss@DESKTOP-F8O3V2Q ~
$ java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

Boss@DESKTOP-F8O3V2Q ~
$ javac -version
javac 1.7.0_79

Boss@DESKTOP-F8O3V2Q ~
$ which java
/cygdrive/c/Program Files/Java/jdk1.7.0_79/bin/java

Boss@DESKTOP-F8O3V2Q ~
$ which javac
/cygdrive/c/Program Files/Java/jdk1.7.0_79/bin/javac

最佳答案

通常在类似 Linux 的系统上,您将使用冒号按如下方式设置类路径:

java -cp "somelibrary.jar:." MyMainClass
^

但是,如果您使用 Windows java,您将收到您所描述的错误,表明 java 无法找到您指定的类。

如果您确保类路径中有分号,它应该可以正常运行您的主类:

java -cp "somelibrary.jar;." MyMainClass
^

请注意,如果您使用unix风格的java,则情况相反。然后您可能需要使用 : 而不是 ;

另请注意:虽然 javac 不需要 . 来查找要编译的文件(因为您将其作为参数提供),但 java 不知道在哪里可以找到您的 PBXConnection.class 文件。您告诉 java 要搜索的类路径仅包含 orderlycalls.jar。您需要明确说明 java 还可以在哪里找到您的实际主类。因此,当您想要运行程序时, . 是必需的,但在编译器的特定情况下则不需要。

关于java - 无法使用完全限定名称从 CMD 启动 java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43259283/

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