新Java开发人员遇到的一个常见问题是,他们的程序无法运行,并显示错误消息:无法找到或加载主类。。。

这意味着什么,是什么导致的,你应该如何解决?


当前回答

对于数据库连接,我得到了这个。我刚刚在类路径中添加了以下内容:

export CLASSPATH=<path>/db2jcc4.jar:**./**

我在这里附上了。/最后,这样我的类在加载时也会被识别。

现在只需运行:

java ConnectionExample <args>

它工作得很好。

其他回答

在命令行上指定类路径对我有帮助。例如:

创建新文件夹C:\temp在C:\Temp中创建Temp.java文件,其中包含以下类:公共类温度{公共静态void main(字符串参数[]){System.out.println(args[0]);}}打开C:\temp文件夹中的命令行,并编写以下命令以编译temp类:javac Temp.java运行编译后的Java类,添加-classpath选项,让JRE知道在哪里可以找到该类:java-classpath C:\tempTemp您好!

如果使用Maven构建JAR文件,请确保在pom.xml文件中指定主类:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>class name us.com.test.abc.MyMainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

2022年之前的Java新版本为Java18。您只需编写package关键字和文件夹名称,其中包含java扩展文件和分号,如下所示:

包JavaProgramming;

因为我在JavaProgramming文件中有hello.java文件。注意:在为java编写文件夹名时,不要给空格。像Java编程一样,你必须保持它的样子;Java编程等;

简单hello世界的整个代码结构如下所示:

package JavaProgramming;

public class hello {
  public static void main(String[] args) {
     System.out.println("Hello java after long time");
      }
    }

我遇到了同样的问题,最终发现了我的错误:)我使用此命令进行编译,并且运行正常:

javac -cp "/home/omidmohebbi/AAAATest/jars/core-1.7.jar:/home/omidmohebbi/AAAATest/jars/javase-1.7.jar:/home/omidmohebbi/AAAATest/jars/qrgen-1.2.jar" qrcode.java

但这个命令对我不起作用(我找不到或加载主类qrcode):

java -cp "/home/omidmohebbi/AAAATest/jars/core-1.7.jar:/home/omidmohebbi/AAAATest/jars/javase-1.7.jar:/home/omidmohebbi/AAAATest/jars/qrgen-1.2.jar" qrcode

最后,我只在类路径末尾添加了“:”字符,问题就解决了:

java -cp "/home/omidmohebbi/AAAATest/jars/core-1.7.jar:/home/omidmohebbi/AAAATest/jars/javase-1.7.jar:/home/omidmohebbi/AAAATest/jars/qrgen-1.2.jar:" qrcode

如果源代码名为HelloWorld.java,则编译代码将为HelloWorld.class。

如果使用以下方法调用它,则会出现该错误:

java HelloWorld.class

相反,请使用以下方法:

java HelloWorld