运行我的程序时,Java 无法找到或加载主类 [英] Java can't find or load main class when running my program
问题描述
我有一个简单的程序,它将文本文件作为输入并在其上运行 kandanes 算法.它编译得很好,但是当我尝试运行它时出现此错误:
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:
错误:无法找到或加载主类 a1_13132334
它在 netbeans ide 上编译和运行良好,它们是那里的类文件,但它不会从命令行运行.这是程序:
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);
}
}
}
它是用这个编译的:
javac a1_13132334.java
然后运行
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.
推荐答案
当我编译你提供的代码时
When I compile the code you provided with
javac a1_13132334.java
然后用
java a1_13132334 temp.txt
我可以很好地看到程序输出(好吧,至少我得到了一个数字格式异常).我会说确保你在编译后检查你的 .class 文件并确保你在正确的目录中.
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.
也许可以尝试将您的代码示例放在一个新文件中,而不在新位置使用 netbeans,然后尝试编译并运行它.
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.
如果这没有帮助,您可以参考:Java 找不到主类
You could refer to this if this doesn't help: Java can't find main class
这篇关于运行我的程序时,Java 无法找到或加载主类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!