开发者

Error: Could not find or load main class <<< Why do I get this error?

I can't seem to get this code to work correctly. This is the error I keep getting:

Error: Could no开发者_开发问答t find or load main class.

What causes this?

Payroll3.java

// A program to calculate and print the department, name, and pay of an employee.
import java.util.Scanner; //program uses the Scanner class
import java.io.*;

class main
{
public class Payroll3

{
// main method begins execution of Java program.
    public void main(String args[])
          {
   // create Scanner to obtain input from the command window
   Scanner input = new Scanner (System.in);

   double number1; // first number to multiply
   double number2; // second number to multiply
   double product; // product of number1 and number2


while(true){   // infinite loop


   System.out.print("Enter Department name: "); //prompt
   String name = input.nextLine(); // read name from user

    if(name.equals("stop"))  // exit the loop
        break;


   System.out.print("Enter number of employees: "); // prompt
   number1 = input.nextDouble(); // read first number from user
   input.nextLine();
      while( number1 <= -1){
         System.out.print("Enter positive number of employees:"); // prompt
         number1 = input.nextDouble(); // read first number from user
         input.nextLine();
      } /* while statement with the condition that negative numbers are entered
         user is prompted to enter a positive number */

   System.out.print("Enter average salary: "); // prompt
   number2 = input.nextDouble(); // read second number from user
   input.nextLine();
      while( number2 <= -1){
       System.out.print("Enter positive number for average salary:"); // prompt
        number2 = input.nextDouble(); // read first number from user
        input.nextLine();                    
 } /* while statement with the condition that negative numbers are entered
         user is prompted to enter a positive number */

   // make department object
        Department dept = new Department(name,number1,number2);

   product = number1 * number2; // multiply numbers

   System.out.println("Department name:" + name); // display Department name
   System.out.printf("Payroll is: $%.2f\n", product); // display product

   } // end while method

} // end method main

}/* end class Payroll3 */
}

//  Stores data about an department
class Department {

//fields
String name;
double number1;
double number2;

// constructor
public Department(String name, double number1, double number2) {
    this.name = name;
    this.number1 = number1;
    this.number2 = number2;
}

// returns the pay:
public double getPay() {
    return number1*number2;
}

// getters and setters

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public double getnumber1() {
    return number1;
}

public void setNumber1(double number1) {
    this.number1 = number1;
}

public double getNumber2() {
    return number2;
}

public void setNumber2(double number2) {
    this.number2 = number2;
}


}


Class must be public and main must be static

public static void main(String argv[])

And you can't have nested main class. At least it's probably not what you expect. Why don't you start with simple tutorial and expand it with your code?


while Running the program just type java program_name but NOT java program_name.java


more detail is required

did you complied it?

Error: Could not find or load main class.?

it seems that you just run the java with the source file

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.

# correct
javac yourfile.java
java yourfile

Also you need to changed your file as Alex Gitelman told.


I simplified your code to reveal the problem inside.

// Payroll3.java

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

          }
}
}

First, we can see that the outmost suspicious class main hide your needed class and the main function. You need to remove the class main.

Second, main function need to be declared as class-function instead of instance-function, because it is not bound to any instance. In java, we use static to declare a class-variable/class-function. So you need to declare the main as public static void main(String argv[])

After the changes, you can get:

// Payroll3.java

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

    }
}


The problem is that the main function needs to be declared as public static void main(String[] args), not public void main(String[] args).


the name of the file should be used when compiling it i.e. javac test.java where test.java is the file name. And when running the file the name of the class is the file should be used for example if it is class Test{} then java test

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜