找不到或加载主类 - 对于任何程序

时间:2017-10-01 07:31:23

标签: java linux shell javac

我遇到了java命令的问题 - 无论我试图运行什么,都说Could not find or load main class

使用javac进行编译时,一切都很好,创建了.class个文件。所以,当我跑:

javac HelloWorld.java

on

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello World");
    }
}

一切正常,HelloWorld.class文件旁边会创建一个HelloWorld.java文件。然而,当我去跑步时:

java HelloWorld

1)最明显的迹象是,当我按Tab自动填充HelloWorld时,没有任何内容出现。

2)当我运行它时,我得到Error: Could not find or load main class HelloWorld尽管它在同一个目录中,不是包的一部分,用.class文件编译好,程序有一个主类。

参考运行Fedora 23 64bit, openjdk version "1.8.0_111"

6 个答案:

答案 0 :(得分:2)

运行示例时需要指定classpath参数:

java -cp . HelloWorld

答案 1 :(得分:2)

尝试使用java -cp . HelloWorld

一些好的阅读:http://www.sergiy.ca/how-to-compile-and-launch-java-code-from-command-line/

答案 2 :(得分:1)

这只是Java新手的一个小提醒:

编译时,键入:

javac MyClass.java

现在,您有两个文件:

MyClass.class MyClass.java

现在,尽管在编译时键入了.java扩展名,但是在运行程序时一定不要键入扩展名.class。您应该输入:

java MyClass

如果您输入java MyClass.class,则会得到:

  

错误:找不到或加载主类

答案 3 :(得分:0)

.class
作品。我使用Windows 10,并检查了当然。我首先必须将它添加到路径中,并花费时间浪费在它上面。但是,请确保 NOT 包含名称的groupby部分。 Java不是我的第一语言,但Java是可移植的,适合所有人使用。

答案 4 :(得分:0)

通过终端编译一段代码(最初为具有多个文件的IDE编写)时,我也发生了同样的事情。问题是提到了与主类同名的包(包HelloWorld)。我修好了,现在可以了。不确定这是不是你的情况

答案 5 :(得分:-1)

可能是您已从系统中删除了JDK。 您可以按照以下步骤进行更改


1> query { productVariant(id: "gid://shopify/ProductVariant/10782354800682") { inventoryItem { inventoryLevels (first:10) { edges { node { location { name } available } } } } } }


2>右键单击Select Project


3>单击Project


4>转到Properties


5>单击Java Build Path选项


6>选择Libraries


7>单击JRE System Library


8>相应地更改您的Edit