Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误:无法找到或加载主类<<&书信电报;为什么会出现这个错误?_Java - Fatal编程技术网

Java 错误:无法找到或加载主类<<&书信电报;为什么会出现这个错误?

Java 错误:无法找到或加载主类<<&书信电报;为什么会出现这个错误?,java,Java,我似乎无法使此代码正常工作。这就是我一直遇到的错误: 错误:无法找到或加载主类 这是什么原因 Payroll3.java //计算和打印员工的部门、姓名和工资的程序。 导入java.util.Scanner//程序使用Scanner类 导入java.io.*; 班长 { 公共类工资表3 { //main方法开始执行Java程序。 公共void main(字符串参数[]) { //创建扫描仪以从命令窗口获取输入 扫描仪输入=新扫描仪(System.in); double number1;//第一个

我似乎无法使此代码正常工作。这就是我一直遇到的错误:

错误:无法找到或加载主类

这是什么原因

Payroll3.java

//计算和打印员工的部门、姓名和工资的程序。
导入java.util.Scanner//程序使用Scanner类
导入java.io.*;
班长
{
公共类工资表3
{
//main方法开始执行Java程序。
公共void main(字符串参数[])
{
//创建扫描仪以从命令窗口获取输入
扫描仪输入=新扫描仪(System.in);
double number1;//第一个要乘法的数字
double number2;//第二个要乘法的数字
双乘积;//1和2的乘积
while(true){//无限循环
System.out.print(“输入部门名称:”;//提示
String name=input.nextLine();//从用户处读取名称
if(name.equals(“stop”)//退出循环
打破
System.out.print(“输入员工人数:”;//提示
number1=input.nextDouble();//从用户处读取第一个数字
input.nextLine();

而(number1类必须是
public
main
必须是静态的

public static void main(String argv[])

而且你不能有嵌套的main类。至少这可能不是你所期望的。为什么不从简单的教程开始,用你的代码来扩展它呢?

问题是
main
函数需要声明为
公共静态void main(String[]args)
,而不是
公共void main(String[]args)

需要更多详细信息

你遵守了吗

错误:无法找到或加载主类

看起来您只是使用源文件运行java

java test.java # wrong
Exception in thread "main" java.lang.NoClassDefFoundError: test/java
Caused by: java.lang.ClassNotFoundException: test.java
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: test.java. Program will exit.


此外,您还需要按照Alex Gitelman所说的更改文件。

编译文件时应使用文件名,即javac test.java,其中test.java是文件名。运行文件时,应使用类的名称,例如,如果它是类测试{}然后java测试

我简化了您的代码以揭示其中的问题

// Payroll3.java

class main
{
public class Payroll3
{
    public void main(String args[])
          {

          }
}
}
首先,我们可以看到最可疑的
类main
隐藏了您需要的类和主函数。您需要删除
类main

其次,main函数需要声明为class函数而不是instance函数,因为它没有绑定到任何实例。在java中,我们使用
static
来声明类变量/类函数。因此需要将
main
声明为
public static void main(字符串argv[])

更改后,您可以获得:

// Payroll3.java

public class Payroll3
{
    public static void main(String argv[])
    {

    }
}

运行程序时,只需键入
java程序\u名称
,但不键入
java程序\u名称。java

为什么在外部主类中有Payroll3?您应该删除它。我做了此更改,但无法使事情正常工作。我在嵌套时尝试了此操作,并取消了主类的嵌套。@NetanaBranham:是的没有注意到外部的
类main{
,您可以将其删除,并将
公共类Payroll3
作为最外部的类,内部带有
公共静态void main(字符串argv[])
,并接受@AlexGitelman的答案吗?我只是尝试添加更多细节。@AlexGitelman只是说明原因,但没有直接修复的方法。
// Payroll3.java

class main
{
public class Payroll3
{
    public void main(String args[])
          {

          }
}
}
// Payroll3.java

public class Payroll3
{
    public static void main(String argv[])
    {

    }
}