Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

compiled, will not execute, it did last year

Status
Not open for further replies.

PROFESSORSPARKIE

Instructor
Oct 24, 2002
181
0
0
US
I am an experienced programmer in several other languages but seem to have mixed experiences in java. Attached is a program screen of compilation and attempted execution with an error.

This is program executed in the past but now gives me an error on 3 different systems using the same java release from before. I don’t understand the message at execution time. Another similar program has the same problem.

Any suggestion? Where & how should I get more detailed info on error messages?

Thanks in advance
From Sparks
--------------------------------------------------------------
command line:

f:\JAVA_RUN\bin>f:\JAVA_run\bin\javac.exe f:\JAVA\Inv_rpt.java
(no error)
f:\JAVA_RUN\bin>f:\JAVA_run\bin\java.exe f:\JAVA\Inv_rpt
Exception in thread “main” java.lang.NoClassDefFoundError: f:\JAVA\Inv_rpt

I have tried with -classpath parameter with no difference.


--------------------------------------------------------------
Program:

//********************************************************************
// INVENTORY REPORT PROGRAM IN JAVA Author: Prof. Morris Sparks
//
// DEMONSTRATES THE READING OF A CHARACTER TEXT FILE
// USING A STANDARD INPUT DATA STREAM.
//********************************************************************
// THE INPUT DATA RECORD FORMAT IS:
// ---------------------------------
// part_id from actual input columns 1- 6 start relative 0
// part_desc from actual input columns 7-26 start relative 6
// unit_cost from actual input columns 27-30 start relative 26
// unit_sell from actual input columns 31-34 start relative 30
// on_hand from actual input columns 35-38 start relative 34
// on_order from actual input columns 39-42 start relative 38
// order_point from actual input columns 43-46 start relative 42
//
// THE OUTPUT PRINT RECORD FORMAT IS:
// ----------------------------------
// part_id from input record
// part_desc from input record
// on_hand from input record
// on_order from input record
// order_point from input record
// unit_cost from input record
// unit_sell from input record
// total_cost from calculation on_hand * unit_cost
// total_sell from calculation on_hand * unit_sell
// order_amount from calculation order_point - (on_hand + on_order)
// with selection (on_hand + on_order)/order_point>.50
// profit_ratio from calculation unit_sell / unit_cost
// with selection of < 1.32
//*********************************************************************
import java.io.*;
import java.util.StringTokenizer;
import java.util.Date;
import java.text.DecimalFormat;
//import java.util.Calendar;

public class Inv_rpt
{
//-----------------------------------------------------------------
// Reads data about a store inventory from an input file,
// creating an array of InventoryItem objects, then prints them.
//-----------------------------------------------------------------
public static void main (String[] args)
{

// **********************************************
// * Define the required variables & work areas *
// **********************************************

String Myfile = "\\JAVA\\inv_rpt.txt";
String line;
String part_id, part_desc, unit_cost, unit_sell;
String on_hand, on_order, order_point;
String Print_work, hold;
String work_pad = " ";
int uct, ust, oht, oot, opt, oh, oo, op;
int page_num = 1;
int work_length, work_size;
DecimalFormat fmt1, fmt2, fmt3, fmt4;
float total_cost = 0, total_sell = 0;
float final_cost = 0, final_sell = 0;
float uc, us, profit_ratio, order_amount, per_cent;
float work1, work2, work3, work4, work5;
float page_total_cost = 0, page_total_sell = 0;
float final_total_cost = 0, final_total_sell = 0;
Date current_time;

// set up hex-char strean to printer for landscape mode - 27 38 108 49 79
// set up hex-char strean to printer from landscape mode - 27 38 108 48 79
// byte b1 = 27, b2 = 38, b3 = 108, b4 = 49, b5 = 79;
byte b1 = 0x1B, b2 = 0x26, b3 = 0x6C, b4 = 0x31, b5 = 0x4F;

fmt1 = new DecimalFormat("####");
fmt2 = new DecimalFormat("#0.00");
fmt3 = new DecimalFormat("##,###,##0.00");
fmt4 = new DecimalFormat("0.00");
current_time = new Date();

work_size = work_pad.length();

// **********************************************
// * DEFINE & OPEN THE INVENTORY DATA FILE. *
// **********************************************

try
{
FileReader fr = new FileReader (Myfile);
BufferedReader inFile = new BufferedReader (fr);
line = inFile.readLine();
// **********************************************
// * PRINT REPORT HEADINGS ON FIRST PAGE. *
// **********************************************

// System.out.print(b1 + b2 + b3 + b4 + b5);
System.out.print(" ");
System.out.print(" SPARKS CORP.");
System.out.println(" ");


System.out.print(" ");
System.out.print("INVENTORY STATUS REPORT");
System.out.println(" PAGE " + page_num);

System.out.print(" ");
System.out.print(" " + current_time);
System.out.println(" ");

System.out.print ("===================================================");
System.out.println("=============================+======================");
System.out.print(" PART PART ");
System.out.print(" ON ON ORDER UNIT UNIT");
System.out.println(" TOTAL TOTAL ORDER PROFIT");

System.out.print(" NO DESCRIPTION ");
System.out.print(" HAND ORDER POINT COST SELL");
System.out.println(" COST SELL POINT RATIO");
System.out.print ("===================================================");
System.out.println("==============================+=====================");

// ************************************************
// * LOOP PROCESS TO READ EACH INPUT DATA RECORD. *
// ************************************************
while (line != null)
{
try
{
part_id = line.substring( 0, 6);
part_desc = line.substring( 6,26);

unit_cost = line.substring(26,30);
uct = Integer.parseInt(unit_cost);
work1 = uct;
work1 = work1 / 100;

unit_sell = line.substring(30,34);
ust = Integer.parseInt(unit_sell);
work2 = ust;
work2 = work2 / 100;

on_hand = line.substring(34,38);
oht = Integer.parseInt(on_hand);
work3 = oht;

on_order = line.substring(38,42);
oot = Integer.parseInt(on_order);
work4 = oot;

order_point = line.substring(42,46);
opt = Integer.parseInt(order_point);
work5 = opt;

total_cost = work1 * work3;
page_total_cost = page_total_cost + total_cost;
final_total_cost = final_total_cost + total_cost;

total_sell = work2 * work3;
page_total_sell = page_total_sell + total_sell;
final_total_sell = final_total_sell + total_sell;

final_cost = final_cost + total_cost;
final_sell = final_sell + total_sell;

order_amount = opt - (oht + oot);
per_cent = ((work3 + work4) * 100) / work5;

profit_ratio = work2 / work1 ;
//*********************************************************************
System.out.print(part_id + " ");
System.out.print(part_desc + " ");

Print_work = fmt1.format(oht);
hold = work_pad + Print_work;
work_size = hold.length();
Print_work = hold.substring(work_size-5+1,work_size);
System.out.print(Print_work + " ");

Print_work = fmt1.format(oot);
hold = work_pad + Print_work;
work_size = hold.length();
Print_work = hold.substring(work_size-5+1,work_size);
System.out.print(Print_work + " ");

Print_work = fmt1.format(opt);
hold = work_pad + Print_work;
work_size = hold.length();
Print_work = hold.substring(work_size-5+1,work_size);
System.out.print(Print_work + " ");

Print_work = fmt2.format(work1);
hold = work_pad + Print_work;
work_size = hold.length();
Print_work = hold.substring(work_size-6+1,work_size);
System.out.print(Print_work + " ");

Print_work = fmt2.format(work2);
hold = work_pad + Print_work;
work_size = hold.length();
Print_work = hold.substring(work_size-6+1,work_size);
System.out.print(Print_work + " ");
//*********************************************************************
Print_work = fmt3.format(total_cost);
hold = work_pad + "$" + Print_work;
work_size = hold.length();
Print_work = hold.substring(work_size-14+1,work_size);
System.out.print(Print_work + " ");
//*********************************************************************
Print_work = fmt3.format(total_sell);
hold = work_pad + "$" + Print_work;
work_size = hold.length();
Print_work = hold.substring(work_size-14+1,work_size);
System.out.print(Print_work + " ");
//*********************************************************************
if (per_cent > 50.0)
{System.out.print(" ");}
else
{Print_work = fmt1.format(order_amount);
hold = work_pad + Print_work;
work_size = hold.length();
Print_work = hold.substring(work_size-5+1,work_size);
System.out.print(Print_work + " ");
System.out.print(" ");
}
//*********************************************************************
if (profit_ratio < 1.32)
{System.out.print(fmt4.format(profit_ratio) + " ");}
else
{System.out.print(" ");}
//*********************************************************************
System.out.println(" *");

}
catch (NumberFormatException exception)
{
System.out.println ("Error in input. Line ignored:");
System.out.println (line);
}
line = inFile.readLine();
}

//*********************************************************************
// print page totals
System.out.print(" ");
System.out.print("PAGE TOTALS => ");
Print_work = fmt3.format(page_total_cost);
hold = work_pad + "$" + Print_work;
work_size = hold.length();
Print_work = hold.substring(work_size-14+1,work_size);
System.out.print(Print_work + " ");
Print_work = fmt3.format(page_total_sell);
hold = work_pad + "$" + Print_work;
work_size = hold.length();
Print_work = hold.substring(work_size-14+1,work_size);
System.out.print(Print_work + " ");
System.out.println(" ");
//*********************************************************************
// print final totals
System.out.print(" ");
System.out.print("FINAL TOTALS => ");
Print_work = fmt3.format(final_total_cost);
hold = work_pad + "$" + Print_work;
work_size = hold.length();
Print_work = hold.substring(work_size-14+1,work_size);
System.out.print(Print_work + " ");

Print_work = fmt3.format(final_total_sell);
hold = work_pad + "$" + Print_work;
work_size = hold.length();
Print_work = hold.substring(work_size-14+1,work_size);
System.out.print(Print_work + " ");
System.out.println(" ");

inFile.close();

}
catch (FileNotFoundException exception)
{
System.out.println ("The file " + Myfile + " was not found.");
}
catch (IOException exception)
{
System.out.println (exception);
}
}
}


Computer thought: I teach a lot of programming so I can learn. You can never learn it all.
 
I'd try

Code:
f:\JAVA>f:\JAVA_run\bin\javac.exe   Inv_rpt.java
f:\JAVA>f:\JAVA_run\bin\java.exe    Inv_rpt

Cheers,
Dian
 
To Diancecht,

I installed java in a folder JAVA_RUN so that appl programs would be in the JAVA folder.

The set up works perfectly for other programs. I have checked "case" spelling and tried different combinations of name structure. The program & naming worked earlier & now I am at a loss. The problem is I do not know what the error

f:\JAVA_RUN\bin>f:\JAVA_run\bin\java.exe f:\JAVA\Inv_rpt
Exception in thread "main" java.lang.NoClassDefFoundError: f:\JAVA\Inv_rpt

is telling me. He finds the compiler, the class file but has problems in the execution sequence.

Sparkie

Computer thought: I teach a lot of programming so I can learn. You can never learn it all.
 
You don't need the .exe, just if there is a .bat or .com with the same name in your PATH before the exe.

For java, you call a class by its name, not by it's path. Part of its name is a package-declaration, if any. Here is none.

The class is searched for in the directories and jars of the classpath, if such is defined, and the current directory.

Code:
f:\JAVA_RUN\bin>f:\JAVA_run\bin\java -cp f:\JAVA Inv_rpt

java -help will tell you what you need. It is very brief, but very accurate in its briefness.


don't visit my homepage:
 
To Stefanwagner & To Diancecht,

Stef & Dian your lines helped - The default folders last must have been different. I was sure that by fully qualifying each file then I would override any defaults. I was wrong - Thanks tons.

The -help wasn't much help but the rest was super.

Keep up the good work.

Sparkie

Computer thought: I teach a lot of programming so I can learn. You can never learn it all.
 
To Stefanwagner & To Diancecht,

Please look at my other post of executing an application as an Applet.

Again thanks.

Sparkie



Computer thought: I teach a lot of programming so I can learn. You can never learn it all.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top