我写了这个程序,可以让它编译,但是当我去运行它时,我得到错误.... 线程“主”java.lang中的异常.NoSuchMethodError:main我该如何解决这个错误?线程“主”java.lang.NoSuchMethodError中的异常:主
没有人有任何想法我可以解决这个问题吗?
public class ProductDVD
{
private String productName;
private int productID;
private long unitsInStock;
private float unitPrice;
ProductDVD()
{
setName("UNKNOWN");
setProductID(0);
setUnitPrice(0);
setUnitsInStock(0);
}
ProductDVD(String productName, int productID, float unitPrice, long unitsInStock)
{
setName(productName);
setProductID(productID);
setUnitPrice(unitPrice);
setUnitsInStock(unitsInStock);
}
public void setName(String productName)
{
this.productName = productName;
}
public void setProductID(int productID)
{
this.productID = productID;
}
public void setUnitsInStock(long unitsInStock)
{
this.unitsInStock = unitsInStock;
}
public void setUnitPrice(float unitPrice)
{
this.unitPrice = unitPrice;
}
public String getName()
{
return productName;
}
public int getProductID()
{
return productID;
}
public long getUnitsInStock()
{
return unitsInStock;
}
public float getUnitPrice()
{
return unitPrice;
}
public float getInventoryValue()
{
return(unitsInStock * unitPrice);
}
}
public class DVDsList extends ProductDVD
{
private String director;
private float restockfee;
DVDsList()
{
super();
director = "Unknown";
restockfee = 0;
}
DVDsList(String productName, int productID, float unitPrice, long unitsInStock, String director)
{
super(productName, productID, unitPrice, unitsInStock);
this.director = director;
}
public String getDirector()
{
return director;
}
public float getRestockFee()
{
return restockfee;
}
public float getInventoryValue()
{
restockfee = (5*super.getInventoryValue())/100;
return (super.getInventoryValue() + restockfee);
}
}
import java.util.Scanner;
public class DVDinventoryProgram
{
final int MAX = 5;
DVDsList dt[] = new DVDsList[MAX];
int numberOfDVDs = 0;
public void arraySort(int count)
{
int pass , i;
int temp;
DVDsList s = null;
if(count > 1)
{
for(pass=1; pass<count; pass++)
{
for(i=0; i<count-pass; i++)
{
temp = (dt[i].getName()).compareTo(dt[i+1].getName());
if(temp > 0)
{
s = dt[i];
dt[i] = dt[i+1];
dt[i+1] = s;
}
}
}
}
}
public float totalValueOfInventory()
{
float inventoryValue = 0;
for(int i=0; i<numberOfDVDs; i++)
{
inventoryValue = inventoryValue + dt[i].getInventoryValue();
}
return inventoryValue;
}
public void displayDVD(int index)
{
System.out.println("Name: " + dt[index].getName());
System.out.println("ID: " + dt[index].getProductID());
System.out.println("Unit Price: " + dt[index].getUnitPrice());
System.out.println("Units in Stock: " + dt[index].getUnitsInStock());
System.out.println("Total Product Value: " + dt[index].getInventoryValue());
System.out.println("Director: " + dt[index].getDirector());
System.out.println("Restocking Fee: " + dt[index].getRestockFee());
System.out.println("\nTotal Value of Inventory: " + totalValueOfInventory());
System.out.println();
}
public static void main(String args [])
{
String name;
int number;
long stock;
float price;
String director;
DVDinventoryProgram dip = new DVDinventoryProgram();
Scanner input = new Scanner(System.in);
System.out.println();
System.out.println("<<<DVD Inventory Program>>>");
System.out.println();
DVDsList dvd;
while(true)
{
System.out.println();
System.out.print("Enter a DVD Title(or STOP to End Program): ");
name = input.nextLine();
if(name.equalsIgnoreCase("stop"))
{
break;
}
System.out.print("Enter a Product ID: ");
number = input.nextInt();
System.out.print("Enter the Unit Price: ");
price = input.nextFloat();
System.out.print("Enter the Number of Units in Stock: ");
stock = input.nextLong();
input.nextLine();
System.out.print("Enter the Name of the Director: ");
director = input.nextLine();
dvd = new DVDsList(name,number,price,stock,director);
if(dip.numberOfDVDs < dip.MAX)
{
dip.dt[dip.numberOfDVDs] = dvd;
dip.numberOfDVDs++;
System.out.println();
System.out.println("<<< NEW DVD >>>");
dip.displayDVD(dip.numberOfDVDs - 1);
}
else
{
System.out.println("\nArray is full. Please stop entering information.");
}
}
dip.arraySort(dip.numberOfDVDs);
System.out.println("\n<<< DVD LIST BY NAME >>>\n");
for(int i = 0; i < dip.numberOfDVDs; i++)
{
dip.displayDVD(i);
}
System.out.println();
System.out.println("End of Program.");
System.out.println();
}
}
第一步是分析堆栈跟踪并找出发生错误的行。 – 9000
你刚刚问完全相同的问题。也许给人一些时间来回答。还要更正代码的缩进。 –
可能的重复[线程中的异常“main”java.lang.NoSuchMethodError:main - code](http://stackoverflow.com/questions/7276436/exception-in-thread-main-java-lang-nosuchmethoderror-main-代码) –