错误:尝试在命令行上运行java程序时无法找到或加载主类

错误:尝试在命令行上运行java程序时无法找到或加载主类,java,cmd,Java,Cmd,我有以下两个java文件。当我在命令行上运行它,或者试图通过键入java TwoThreadsTest.java来运行它时,会出现错误消息,说明找不到或加载主类TwoThreads.java 我使用下面的代码创建了一个java文件名nThreadsTest,它编译并给出显示两个线程的输出,即0 figi和0牙买加。如何修改此代码以在执行时接受来自命令行的输入。输入将是一个非负整数,该数字将用于确定要执行的线程数,例如,执行java nThreadsTest 5将执行并启动5个线程。对于每个调用的

我有以下两个java文件。当我在命令行上运行它,或者试图通过键入java TwoThreadsTest.java来运行它时,会出现错误消息,说明找不到或加载主类TwoThreads.java 我使用下面的代码创建了一个java文件名nThreadsTest,它编译并给出显示两个线程的输出,即0 figi和0牙买加。如何修改此代码以在执行时接受来自命令行的输入。输入将是一个非负整数,该数字将用于确定要执行的线程数,例如,执行java nThreadsTest 5将执行并启动5个线程。对于每个调用的线程,1到n之间的整数(其中n是从命令行传递的数字)将作为线程名称传递给线程

class TwoThreadsTest {

    public static void main (String[] args) {

        new SimpleThread("Jamaica").start();

        new SimpleThread("Fiji").start();

    }
}

class SimpleThread extends Thread {

    public SimpleThread(String str) {

        super(str);
    }

    public void run() {

        for (int i = 0; i < 10; i++) {

            System.out.println(i + " " + getName());

                for (int j = 1; j < 100000; j++) { // 5 zeroes

                    for (int k = 1; k < 1000000; k++) { // 6 zeroes

                        for (int l = 1; l < 10000000; l++) { // 7 zeroes

                            int m = j + k + l;

                        }                       
                    }
                }

            try {

                sleep((int)(Math.random() * 10000));

                sleep(10000);

            } catch (InterruptedException e) {}

        }

        System.out.println("DONE! " + getName());
    }
}
class TwoThreadsTest{
公共静态void main(字符串[]args){
新SimpleThread(“牙买加”).start();
新SimpleThread(“斐济”).start();
}
}
类SimpleThread扩展线程{
公共SimpleThread(字符串str){
超级(str);
}
公开募捐{
对于(int i=0;i<10;i++){
System.out.println(i+“”+getName());
对于(int j=1;j<100000;j++){//5个零
对于(int k=1;k<1000000;k++){//6个零
对于(int l=1;l<10000000;l++){//7个零
int m=j+k+l;
}                       
}
}
试一试{
睡眠((int)(Math.random()*10000));
睡眠(10000);
}捕获(中断异常e){}
}
System.out.println(“完成!”+getName());
}
}

您的代码编译并运行。我认为您可以通过调用“javasimplethread.java”来运行它。但是,首先需要通过调用“javac”来编译它,然后在不使用“.java”扩展名的情况下运行“javasimplethread”。希望这有帮助

编辑:

此外,如果安装了编译Java代码所必需的JDK(Java开发工具包),则必须设置环境变量,以便直接从命令提示符使用“javac”命令。以下信息直接取自

更新PATH环境变量(可选) 您可以在不设置PATH环境变量的情况下运行JDK,也可以选择对其进行设置,以便可以方便地从任何目录运行JDK可执行文件(javac.exe、java.exe、javadoc.exe等),而无需键入命令的完整路径。如果未设置PATH变量,则需要在每次运行可执行文件时指定其完整路径,例如:

C:>“C:\ProgramFiles\Java\jdk1.7.0\bin\javac”MyClass.Java 永久设置PATH变量非常有用,这样在重新启动后它将保持不变

要永久设置PATH变量,请将jdk1.7.0\bin目录的完整路径添加到PATH变量。通常,此完整路径类似于C:\Program Files\Java\jdk1.7.0\bin。在Microsoft Windows上设置PATH变量,如下所示:

单击开始,然后单击控制面板,然后单击系统

单击高级,然后单击环境变量

在系统变量中为PATH变量添加JDK安装的bin文件夹的位置。以下是PATH变量的典型值:

C:\WINDOWS\system32;C:\WINDOWS;C:\ProgramFiles\Java\jdk1.7.0\bin 注:

PATH环境变量是由分号(;)分隔的一系列目录,不区分大小写。Microsoft Windows按从左到右的顺序在路径目录中查找程序。 对于JDK,一次只能在路径中有一个bin目录。遵循第一个实例的将被忽略。 如果不确定在何处添加路径,请将其添加到path变量值的右侧。 新路径在设置path变量后打开的每个新命令窗口中生效


显示您键入的实际命令和收到的全部错误。(并在编辑时修复代码格式。)Hi furkan,感谢您的快速响应,但是我正在使用windows并尝试您说的操作,首先编译并键入“javac SimpleThread”,我收到一个错误,说“javac”不被识别为内部或外部命令,可操作程序或批处理file@SusanSummers您没有在系统环境变量中设置Java。修复此问题。@SusanSummers您可以按照此链接设置环境变量或安装Elipse或Netbeans。谢谢@Unihedron和Furkan,我确实安装了java,只是我没有正确设置路径。它现在起作用了。