gpt4 book ai didi

java - 代码在 Netbeans 中编译并运行,但不在 java 命令行中编译和运行

转载 作者:行者123 更新时间:2023-12-01 14:38:29 26 4
gpt4 key购买 nike

但是当我使用命令行运行程序时。我收到“java.lang.NoClassDefFoundError”的运行时错误。我所做的只是从 Netbeans 复制代码并将其粘贴到记事本文件中,然后尝试通过命令提示符运行它。我不确定我做错了什么/做错了什么。任何反馈都将不胜感激!顺便说一句,这是我的代码

package reader;



import java.util.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;

import java.util.Scanner;


public class Reader{

public static final Scanner in = new Scanner( System.in);
static final int adult = 0; // The index representation numbers for the total and count arrays;
static final int child = 1;
static final int adultMale = 2;
static final int adultFemale = 3;
static final int childMale = 4;
static final int childFemale = 5;
static final int people = 6;
static final int family = 7;


public static void main(String[] arg){

if(arg.length > 2){ die("Too many arguments");}
else {System.out.println("Good");}

String inFileName;

if(arg.length > 0){ inFileName = arg[0];}
else {
inFileName = "population.txt";}

Scanner fin = openFile(inFileName);
int[] count = new int[8]; // adults,children,male adult, female adult, male child , female child, people, family
int[] total = new int[8]; //adults,children,male adult, female adult, male child , female child, people, family

for( ; fin.hasNextLine(); ){
String line = fin.nextLine();
String error = check(line);

if(error != null){die(error);}
else{ gather(line, count, total);}

}//loop

for(int i = 0; i< count.length; i++){ System.out.print(count[i] + " ");}
System.out.println();
for(int i = 0; i< total.length; i++){ System.out.print(total[i] + " ");}
System.out.println();
System.out.println((float)count[family]/count[people]);

fin.close();

String outFileName;
if( arg.length > 1){ outFileName = arg[1];}
else{outFileName = "output.txt";}

PrintStream fout = outFile(outFileName);

showCensus(fout,count,total);

}//main


public static void die(String message){

System.err.println("Error: " + message);
System.exit(1);

}//die

public static Scanner openFile(String fileName){

Scanner inputFile = null;
try{
inputFile = new Scanner(new File(fileName));
}
catch(FileNotFoundException e){ die("File not found: " + fileName);
}

return inputFile;

}// OpenFIle

public static PrintStream outFile(String fileName){

Scanner temp = null;
try{
temp = new Scanner(new File(fileName));
} catch(FileNotFoundException ei){
PrintStream result = null;
try{
result = new PrintStream( new File(fileName));
}catch(FileNotFoundException eo){die("Can't open " + fileName);}
return result;
}
die("The file " + fileName + " already exists!");
return null;
}

public static String check(String line){
int change = 0;

String sex;
int age;
Scanner sin = new Scanner(line);
if(!sin.hasNext()){return null;}
if(sin.next().equalsIgnoreCase("Comment")){return null;}
Scanner sin2 = new Scanner(line);
while(sin2.hasNext()){
change++;
if(change % 2 == 0){}
else{
sex = sin2.next();
if(!sex.equals("M")&& !sex.equals("F")){return "Gender must be 'M' or 'F', not " + sex;}
if(!sin2.hasNext()){return "No data after " + sex ;}
if(!sin2.hasNextInt()){return "age must be a number not " + sin2.next();}
age = sin2.nextInt();
//System.out.print(sex + " " + age + " ");
}

}

System.out.println();

return null;

}


public static void gather(String line, int[] count, int[] total){

int change = 0;
Scanner sin = new Scanner(line);
if(!sin.hasNext()){return ;}
if(sin.next().equalsIgnoreCase("Comment")){return;}
Scanner sin2 = new Scanner(line);
while(sin2.hasNext()){
change++;
if(change % 2 == 0){}
else{
String sex = sin2.next();
int age = sin2.nextInt();
if(sex.equals("M") && age > 17){
count[adultMale]++;
count[adult]++;
count[people]++;
total[adultMale]+= age;
total[adult]+= age;
total[people]+= age;}
else if(sex.equals("M") && age <= 17){
count[child]++;
count[people]++;
count[childMale]++;
total[child]+= age;
total[people]+= age;
total[childMale]+= age;}
else if(sex.equals("F") && age > 17 ){
count[adult]++;
count[adultFemale]++;
count[people]++;
total[adult]+= age;
total[adultFemale]+= age;
total[people]+= age;}
else if(sex.equals("F") && age <= 17){
count[childFemale]++;
count[child]++;
count[people]++;
total[childFemale]+= age;
total[child]+= age;
total[people]+= age;}
}
}// while

count[family]++;







}

public static void showCensus(PrintStream out, int[] count, int[] total){

out.println("The Family Statistics 2013 Report");
out.println();
out.println("People: " + count[people] + " Average Age: " + (float)total[people]/count[people]);
out.println(" Adults: " + count[adult] + " Average Age: " + (float)total[adult]/count[adult]);
out.println(" Males: " + count[adultMale] + " Average Age: " + (float)total[adultMale]/count[adultMale]);
out.println(" Females: " + count[adultFemale] + " Average Age: " + (float)total[adultFemale]/count[adultFemale]);
out.println(" Children: " + count[child] + " Average Age: " + (float)total[child]/count[child]);
out.println(" Males: " + count[childMale] + " Average Age: " + (float)total[childMale]/count[childMale]);
out.println(" Female: " + count[childFemale] + " Average Age: " + (float)total[childFemale]/count[childFemale]);
out.println("Families: " + count[family] + " Average Family Size " + (float)count[family]/count[people]);



}





}//Reader

最佳答案

您的类Reader 是在reader 包 中定义的。您需要为 JVM 提供正确的类路径。创建一个名为 reader 的文件夹并将您的类(class)放在那里。然后在调用java时使用-classpath标志。

c:\>javac reader\Reader.java
c:\>java -classpath . reader.Reader

关于java - 代码在 Netbeans 中编译并运行,但不在 java 命令行中编译和运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16244063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com