Reputation: 37
I have a simple program that takes a text file as input and runs kandanes algorithm on it. It compiles fine but I get this error when I try and run it:
Error: Could not find or load main class a1_13132334
It compiles and runs fine on netbeans ide and their is a class file there but it won't run from the command line. Here is the program:
import java.io.*;
public class a1_13132334
{
public static void main(String [] args) throws IOException
{
//make sure the user entered a single text file
if(args.length == 0 || args.length > 1){
//display an error if the user didn't enter a file or entered more than one file
System.out.println("You must enter a single file to read from");
//exit the program if they didn't have the correct input
System.exit(0);
}
else
{
//set up strings for reading in the file
String values = "";
String currentLine;
try {
// Generate the file stream to the file
FileInputStream in = new FileInputStream(args[0]);
try {
// Create data input stream to the file stream
BufferedReader myInput = new BufferedReader(new InputStreamReader(in));
try {
// Loop through the file one line at a time
while((currentLine = myInput.readLine()) != null) { // while loop begins here
values += currentLine;
}
}catch (Exception e) {
// If the file is unreadable output error message
System.out.println("Error: " + e);
}
}catch (Exception e) {
// If the file stream is unaccessable
System.out.println("Error: " + e);
}
}catch (Exception e) {
// If the file is unopenable
System.out.println("failed to open file " + args[0]);
System.out.println("Error: " + e);
}
//split the string containing the data of the file into a string array
String [] data = values.split(",");
//create an array of floats to parse the values of the file into and set it to the length of the string array data
float [] vectors = new float[data.length];
//a for loop to go through the data array
for(int i = 0;i< data.length;i++){
//convert the values in the data string array into floats and put them in the vectors array
vectors[i] = Float.parseFloat(data[i]);
}
//set up the floats and ints that are needed for kandanes alogorithm
//an int to store the start index
int maxStartIndex=0;
//an int to store the final index
int maxEndIndex=0;
//a float to store the max sum
float maxSum = Integer.MIN_VALUE;
// a float to store the sum if you add the current index
float cumulativeSum= 0;
//an int to store the start index so far
int maxStartIndexUntilNow=0;
//a for loop to read through the vectors array
for (int i = 0; i < vectors.length; i++) {
//a float to store the current value of the array
float eachArrayItem = vectors[i];
//adding the value of the current index to the sum so far
cumulativeSum+=eachArrayItem;
//checking if adding the current value increases the max sum
if(cumulativeSum>maxSum){
//if it does make the maxsum include the value of the current index
maxSum = cumulativeSum;
//change the initial index to the max start index until now
maxStartIndex=maxStartIndexUntilNow;
//make the final index the current index
maxEndIndex = i;
}
//if the current index doesn't increase the maxsum check if it makes it less than 0
else if (cumulativeSum<0){
//change the inital index to the next index
maxStartIndexUntilNow=i+1;
//reset the cumulative sum
cumulativeSum=0;
}
}
//print out the results
System.out.println("initial index:\t\t\t"+maxStartIndex);
System.out.println("final index:\t\t\t"+maxEndIndex);
System.out.println("Value of max-sub vector:\t"+maxSum);
}
}
}
It is compiled using this:
javac a1_13132334.java
and run with this
java a1_13132334 d:vector25.txt
The file also definitely exists and works fine. It is part of a college assignment so it needs to be able to be run from the command line.
Upvotes: 1
Views: 1714
Reputation: 394
When I compile the code you provided with
javac a1_13132334.java
And then run it with
java a1_13132334 temp.txt
I can see the program output just fine (well, I get a number format exception at least). I'd say make sure you check for your .class file after you compile and make sure you're in the correct directory.
Perhaps try taking your code example and putting it in a new file without using netbeans in a new location and try compiling and running that.
You could refer to this if this doesn't help: Java can't find main class
Upvotes: 3