Eamon Moloney
Eamon Moloney

Reputation: 1921

Java – “Error: Could not find or load main class” Error

the error and the class http://puu.sh/1ITnS.png

When I name the class file Main.class, java says it has the wrong name, and when I name it shop.Main.class it says that the main class can't be found. Can anyone help?

package shop;

import java.text.DecimalFormat;

public class Main
{  
    public static void main(String args[])
    {  
        Cart cart = new Cart(new Catalogue());
        printOrder(cart);
    }

    public static void printOrder(Cart cart)
    {
        DecimalFormat df = new DecimalFormat("0.00");
        System.out.println("Your order:");
        for(int itemIndex = 0; itemIndex < cart.itemsInCart.products.size(); 
            itemIndex++)
            if (cart.itemsInCart.products.get(itemIndex).quantity != 0)
                System.out.println(cart.itemsInCart.products.get(itemIndex).quantity 
                    + " " + cart.itemsInCart.products.get(itemIndex).name 
                    + " $"+ df.format(cart.itemsInCart.products.get(itemIndex).price) 
                    + " = $" + df.format
                    ((cart.itemsInCart.products.get(itemIndex).quantity 
                    * cart.itemsInCart.products.get(itemIndex).price)));

        double subtotal = 0;
        int taxPercent = 20;
        double tax;
        double total;

        for(int itemIndex = 0; itemIndex < cart.itemsInCart.products.size(); 
            itemIndex++)
            subtotal += cart.itemsInCart.products.get(itemIndex).quantity 
            * cart.itemsInCart.products.get(itemIndex).price;
        tax = subtotal * taxPercent / 100;
        total = subtotal + tax;


        System.out.print("Subtotal: $" + df.format(subtotal) 
            + " Tax @ " + taxPercent + "%: $" + df.format(tax) 
            + " Grand Total: $" + df.format(total));
    }  
}

Ignore between the following two lines

–––––––––––––––––––––––––

Edit Summary

Oops! Your edit couldn't be submitted because:

Your post does not have much context to explain the code sections; please explain your scenario more clearly.

cancel

––––––––––––––––––––––---

Upvotes: 3

Views: 2012

Answers (4)

Marko Jurisic
Marko Jurisic

Reputation: 854

You should be careful to place classes in correct folders if compiling manually (package name equals folder name on disk). I recommend using an IDE (Eclipse and Netbeans are both good and free choices).

Your example will work if you place Main.class in folder called "shop" and then from project root folder execute "java shop/Main"

Upvotes: 0

Sean Patrick Floyd
Sean Patrick Floyd

Reputation: 299148

Execute these commands:

cd ..
java shop.Main

You can't run java code from inside a package you are trying to reference.

Upvotes: 4

lol
lol

Reputation: 3390

compile: ~/java> javac shop/Main.java

run: ~/java> java shop.Main

Upvotes: 0

Subin Sebastian
Subin Sebastian

Reputation: 10997

keep it Main.class and try java shop.Main from command line in java folder

Upvotes: 2

Related Questions