Программа ввода-вывода не запускается из консоли, а из Eclipse (Java) - PullRequest
1 голос
/ 29 февраля 2012

Он компилируется нормально, но когда я пытаюсь запустить его из консоли, я получаю ошибку ClassNotFoundException. Но если я запускаю его из Eclipse, он работает нормально. Почему?

Я использую «javac FileIO.java» для компиляции и «java FileIO» для его запуска.

import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileReader;
import java.io.FileOutputStream;

public class FileIO {
public static void main(String[] args){
    PrintWriter pw = null;
    BufferedReader bfr = null;
    String linea = null;

    try{
        bfr = new BufferedReader(new FileReader("Records"));
        linea = bfr.readLine();
    } catch(FileNotFoundException fnfex){
            System.out.println("Check you have reading/writing access.");
    } catch(IOException ioex){
            ioex.printStackTrace();
    }

    try{
        pw = new PrintWriter(new FileOutputStream("Copy Records"));
    } catch(FileNotFoundException fnfex){
            System.out.println("Check you have reading/writing access.");
    }

    while(linea != null){
        pw.println(linea);
        try{
            linea = bfr.readLine();
        } catch(IOException ioex){
                ioex.printStackTrace();
        }
    }

    try{
        bfr.close();
    } catch(IOException ioex){
            ioex.printStackTrace();
    }

    pw.close();
}
}`

Полная StackTrace:

`Exception in thread "main" java.lang.NoClassDefFoundError: FileIO/java
Caused by: java.lang.ClassNotFoundException: FileIO.java
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: FileIO.java.  Program will exit.

`

Ответы [ 2 ]

6 голосов
/ 29 февраля 2012

Сообщение об ошибке выглядит так, как будто вы звоните

java FileIO.java

вместо

java FileIO
2 голосов
/ 29 февраля 2012

Вы пытаетесь запустить FileIO.java; он видит "Java" как класс в пакете FileIO.

...