I created a program, which I will include the source below with a problem. It appears to compile fine, but I get an error when I try to run it. The error is: "Exception in thread "main" java.lang.NoSuchMethodError: main." What does this error mean?
/* This program will allow the user to select a country"s curency and find */
/* what the equivalent is in another. These calculations are based on the */
/* values posted on the www.x-rates.com web site on Thursday, November 18, */
/* 2004. The site had these two items as disclaimers: */
/* 1) "The given values on this site are gathered from the Federal Reserve */
/* Bank of New York, representing the 12 noon buying rates and the */
/* doubleernational Monetary Fund, according to their availability. */
/* 2) Values and dates are believed to be reliable but this site makes no */
/* warranties regarding these values, fitness for a particular purpose, */
/* accuracy or availability." */
/* Written by: Andrew Q. Western */
/* Creation Date: January 13, 2005 */
/* Revision History: January 20, 2005 - Cleaned up the output of the converted */
/* currency value to be only two decimal */
/* places. */
import java.io.*; /* This is for the system.io */
import java.util.*; /* This is for allowing user input */
public class CurrencyConv1
{
String Menu_Opt; /* Menu Option */
String Menu_ID;
String Opt_Num;
float Org_Curr_Amt; /* Original Currency Amount */
double New_Curr_Amt; /* New Currency Amount */
String Currency_Desc[] = { "American Dollar (USD) " , "Australian Dollar (AUD) " ,
"Brazilian Real (BRL) " , "British Pound (GBP) " , "Canadian Dollar (CAD) " ,
"Chinese Yuan (CNY) " , "Danish Krone (DKK) " , "Euro (EUR) " , "Hong Kong Dollar (HKD) " ,
"Indian Rupee (INR) " , "Japanese Yen (JPY) " , "Malaysian Ringgit (MYR) " , "Mexican Peso (MXN) " ,
"New Zealand Dollar (NZD) " , "Norwegian Kroner (NOK) " , "Singapore Dollar (SGD) " ,
"South African Rand (ZAR) " , "South Korean Won (KRW) " , "Sri Lanka Rupee (LKR) " ,
"Swedish Krona (SEK) " , "Swiss Franc (CHF) " , "Taiwan Dollar (TVD) " , "Thai Baht (THB) " ,
"Venezuelan Bolivar (YEB) " }; /* Descriptions of each of the currency types to be converted */
BufferedReader inStr = new BufferedReader(new InputStreamReader(System.in));
Scanner input = new Scanner(System.in);
public void main (String[] arguments) throws IOException
{
USD_Menu();
}
public void USD_Menu() throws IOException
{
double USD_to_AUD = 1.28436; /* Australian Dollar (AUD) */
double USD_to_BRL = 2.7675; /* Brazilian Real (BRL) */
double USD_to_GBP = 0.540132; /* British Pound (GBP) */
double USD_to_CAD = 1.207; /* Canadian Dollar (CAD) */
double USD_to_CNY = 8.2765; /* Chinese Yuan (CNY) */
double USD_to_DKK = 5.7225; /* Danish Krone (DKK) */
double USD_to_EUR = 0.770297; /* Euro (EUR) */
double USD_to_HKD = 7.7767; /* Hong Kong Dollar (HKD) */
int USD_to_INR = 45; /* Indian Rupee (INR) */
double USD_to_JPY = 104.23; /* Japanese Yen (JPY) */
double USD_to_MYR = 3.8; /* Malaysian Ringgit (MYR) */
double USD_to_MXN = 11.342; /* Mexican Peso (MXN) */
double USD_to_NZD = 1.41123; /* New Zealand Dollar (NZD) */
double USD_to_NOK = 6.2644; /* Norwegian Kroner (NOK) */
double USD_to_SGD = 1.6538; /* Singapore Dollar (SGD) */
double USD_to_ZAR = 6.0284; /* South African Rand (ZAR) */
int USD_to_KRW = 1069; /* South Korean Won (KRW) */
double USD_to_LKR = 104.88; /* Sri Lanka Rupee (LKR) */
double USD_to_SEK = 6.9108; /* Swedish Krona (SEK) */
double USD_to_CHF = 1.1691; /* Swiss Franc (CHF) */
double USD_to_TVD = 32.635; /* Taiwan Dollar (TVD) */
double USD_to_THB = 40.16; /* Thai Baht (THB) */
double USD_to_YEB = 1915.2; /* Venezuelan Bolivar (YEB) */
CurrencyConv1 Rename = new CurrencyConv1();
System.out.println("\nCurrency Conversion");
System.out.println(Rename.Currency_Desc[0]+"Conversion Menu\n");
System.out.println("");
System.out.println("A02. USD to AUD Y02. Transfer to AUD Conversion Menu");
System.out.println("A03. USD to BRL Y03. Transfer to BRL Conversion Menu");
System.out.println("A04. USD to GBP Y04. Transfer to GBP Conversion Menu");
System.out.println("A05. USD to CAD Y05. Transfer to CAD Conversion Menu");
System.out.println("A06. USD to CNY Y06. Transfer to CNY Conversion Menu");
System.out.println("A07. USD to DKK Y07. Transfer to DKK Conversion Menu");
System.out.println("A08. USD to EUR Y08. Transfer to EUR Conversion Menu");
System.out.println("A09. USD to HKD Y09. Transfer to HKD Conversion Menu");
System.out.println("A10. USD to INR Y10. Transfer to INR Conversion Menu");
System.out.println("A11. USD to JPY Y11. Transfer to JPY Conversion Menu");
System.out.println("A12. USD to MYR Y12. Transfer to MYR Conversion Menu");
System.out.println("A13. USD to MXN Y13. Transfer to MXN Conversion Menu");
System.out.println("A14. USD to NZD Y14. Transfer to NZD Conversion Menu");
System.out.println("A15. USD to NOK Y15. Transfer to NOK Conversion Menu");
System.out.println("A16. USD to SGD Y16. Transfer to SGD Conversion Menu");
System.out.println("A17. USD to ZAR Y17. Transfer to ZAR Conversion Menu");
System.out.println("A18. USD to KRW Y18. Transfer to KRW Conversion Menu");
System.out.println("A19. USD to LKR Y19. Transfer to LKR Conversion Menu");
System.out.println("A20. USD to SEK Y20. Transfer to SEK Conversion Menu");
System.out.println("A21. USD to CHF Y21. Transfer to CHF Conversion Menu");
System.out.println("A22. USD to TVD Y22. Transfer to TVD Conversion Menu");
System.out.println("A23. USD to THB Y23. Transfer to THB Conversion Menu");
System.out.println("A24. USD to YEB Y24. Transfer to YEB Conversion Menu\n");
System.out.println("Z99. Exit Program");
System.out.print("Option: ");
/* Read in the menu option selected and extract out the different parts of it. */
Rename.Menu_Opt = inStr.readLine();
Rename.Menu_Opt = Rename.Menu_Opt.toUpperCase(); /* Convert the menu option to upper case, just in case */
/* the user entered it in lower case letters. */
Rename.Menu_ID = Rename.Menu_Opt.substring(0 , 1); /* Extract the first character of the menu option. */
Rename.Opt_Num = Rename.Menu_Opt.substring(1 , 3); /* Extract the last two characters of the menu option. */
int a = Integer.parseInt(Rename.Opt_Num); /* Convert the last two characters of the menu option to */
/* allow the use of "Case" logic. */
/* Check to see if the user has requested to exit the program. */
if (Rename.Menu_Opt.equals( "Z99" ) )
{
return;
}
/* Make sure that the user enters a valid menu option number. */
if (a < 2 || a > 24 )
{
System.out.println("Invalid menu option, program is now exiting.");
return;
}
if (Rename.Menu_ID.equals( "A" ) )
{
switch (a)
{
case 2:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_AUD;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[1], Rename.New_Curr_Amt);
break;
}
case 3:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_BRL;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[2], Rename.New_Curr_Amt);
break;
}
case 4:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_GBP;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[3], Rename.New_Curr_Amt);
break;
}
case 5:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_CAD;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[4], Rename.New_Curr_Amt);
break;
}
case 6:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_CNY;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[5], Rename.New_Curr_Amt);
break;
}
case 7:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_DKK;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[6], Rename.New_Curr_Amt);
break;
}
case 8:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_EUR;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[7], Rename.New_Curr_Amt);
break;
}
case 9:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_HKD;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[8], Rename.New_Curr_Amt);
break;
}
case 10:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_INR;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[9], Rename.New_Curr_Amt);
break;
}
case 11:
{
System.out.print("Please enter your value of "+ Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_JPY;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[10], Rename.New_Curr_Amt);
break;
}
case 12:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_MYR;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[11], Rename.New_Curr_Amt);
break;
}
case 13:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_MXN;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[12], Rename.New_Curr_Amt);
break;
}
case 14:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_NZD;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[13], Rename.New_Curr_Amt);
break;
}
case 15:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_NOK;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[14], Rename.New_Curr_Amt);
break;
}
case 16:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_SGD;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[15], Rename.New_Curr_Amt);
break;
}
case 17:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_ZAR;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[16], Rename.New_Curr_Amt);
break;
}
case 18:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_KRW;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[17], Rename.New_Curr_Amt);
break;
}
case 19:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_LKR;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[18], Rename.New_Curr_Amt);
break;
}
case 20:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_SEK;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[19], Rename.New_Curr_Amt);
break;
}
case 21:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_CHF;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[20], Rename.New_Curr_Amt);
break;
}
case 22:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_TVD;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[21], Rename.New_Curr_Amt);
break;
}
case 23:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_THB;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[22], Rename.New_Curr_Amt);
break;
}
case 24:
{
System.out.print("Please enter your value of " +Rename.Currency_Desc[0]);
Rename.Org_Curr_Amt = input.nextFloat();
Rename.New_Curr_Amt = Rename.Org_Curr_Amt * USD_to_YEB;
System.out.printf("\nYour Equivalent %s is %.2f\n", Rename.Currency_Desc[23], Rename.New_Curr_Amt);
break;
}
}
} else if (Rename.Menu_ID.equals( "Y" ) )
{
switch (a)
{
case 2:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 3:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 4:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 5:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 6:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 7:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 8:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 9:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 10:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 11:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 12:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 13:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 14:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 15:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 16:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 17:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 18:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 19:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 20:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 21:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 22:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 23:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
case 24:
{
System.out.println("I am sorry, but that option is not supported right now.");
break;
}
}
} else System.out.println("Invalid menu option, program is now exiting.");
}
}