java.lang.NoSuchMethodError: main 为什么出现这个错误?要怎么改?

importjava.io.*;importjava.util.Scanner;publicclassPage{StringfileName;intarr1[][]=nu... import java.io.*;
import java.util.Scanner;
public class Page {
String fileName;
int arr1[][]=null;
int arr2[]=null;
public void main(String args[]){
System.out.println(" /**********分页地址变换模拟**********/");
Scanner reader1=new Scanner(System.in);
System.out.print("亲输入页表的文件名:");
fileName=reader1.nextLine();
fileDataToArrays(fileName);
System.out.println("读入页表的情况是:");
Scanner reader2=new Scanner(System.in);
System.out.print("请输入访问串的文件名:");
fileName=reader2.nextLine();
fileDataToArray(fileName);
System.out.print("读入的访问串:");

System.out.println("-------------------------");
System.out.print("地址变换结果是:");
}
public void fileDataToArrays( String fileName){
FileReader inOne = null;
try {
inOne = new FileReader(fileName);
} catch (FileNotFoundException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
BufferedReader inTwo=new BufferedReader(inOne);
String str = null;
try {
str = inTwo.readLine();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
int j=0,k=0;
while(str!=null){
System.out.println(str);
String []strArr=str.split(" ");
for(int i=0;i<=8;i++){
while(strArr[k].equals(" ")){
k++;
arr1[j][i]=Integer.parseInt(strArr[k++].trim());
}
j++;
try {
str=inTwo.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public void fileDataToArray( String fileName){
FileReader inOne = null;
try {
inOne = new FileReader(fileName);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
BufferedReader inTwo=new BufferedReader(inOne);
String str = null;
try {
str = inTwo.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int k=0;
while(str!=null){
System.out.println(str);
String []strArr=str.split(" ");
for(int i=0;i<=6;i++){
while(strArr[k].equals(" ")){
k++;
arr2[i]=Integer.parseInt(strArr[k++].trim());
}
}
}

}
}
展开
 我来答
大鱼杂说
2012-11-14 · TA获得超过122个赞
知道小有建树答主
回答量:228
采纳率:100%
帮助的人:95万
展开全部
可执行的main函数要是静态的,前半部分改成下面这样,fileName定义到main函数里,要调用page的方法的时候,先new一个Page的对象

public class Page {
int arr1[][] = null;
int arr2[] = null;

public static void main(String args[]) {
String fileName;

System.out.println(" /**********分页地址变换模拟**********/");
Scanner reader1 = new Scanner(System.in);
System.out.print("亲输入页表的文件名:");
fileName = reader1.nextLine();
Page a = new Page();
a.fileDataToArrays(fileName);
System.out.println("读入页表的情况是:");
Scanner reader2 = new Scanner(System.in);
System.out.print("请输入访问串的文件名:");
fileName = reader2.nextLine();
a.fileDataToArray(fileName);
System.out.print("读入的访问串:");

System.out.println("-------------------------");
System.out.print("地址变换结果是:");
}
更多追问追答
追问
这个问题我已经解决了,就是把那个main 方法改为静态的,fileDataToArrays 我也改成了静态 
现在又有了一个新的问题 就是 我在类里面写了一个
for(i=0;i<=6;i++){
a=arr2[i]/1024;
b=arr2[i]%1024;
这样的函数 就是引用了前面创建的数组 但是现在报错说
java.lang.NullPointerException 这是什么情况啊 是不是我前面的把字符型转变为数组的函数有问题?
追答
fileDataToArrays 不用改成静态,就用我说的那个放个方法,在main函数new 一个Page对象来调用,引用数组的时候也调用那个对象的数组,假设
Page a = new Page();那你调用数组的时候也用a.arr2[]
试试
erliang20088
2012-11-15 · TA获得超过2496个赞
知道小有建树答主
回答量:926
采纳率:100%
帮助的人:948万
展开全部
1、java基础知识不够扎实。
2、用简单的两句话来说明问题,
(1) java application规定,一个可运行public class类中,它的程序入口方法是
public static void main(String args[]){.......}方法。
(2) 当你想运行某个public class时,若没有上边的一模一样的方法,就会报NoSuchMethodError: main这样的异常,而你的类中有main方法,但不是一模一样的,故报错。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友48d5dc9
2012-11-14 · TA获得超过448个赞
知道小有建树答主
回答量:476
采纳率:0%
帮助的人:202万
展开全部
重新编译,把那个class文件删掉就好了,如果你没写错的话
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式