2011-09-10 6 views
2

この問題は数回発生しました。別のクラスファイルを作成してしまい、メインクラスファイルでそれを見つけることができません。ここで 別のクラスファイルのシンボルを見つけることができません

package textfiles; 

import java.io.IOException; 
public class FileData 
{ 

public static void main(String[] args) 
{ 
    String file_name = "Lines.txt"; 

    try { 
     ReadFile file = new ReadFile(file_name); 
     String[] aryLines = file.OpenFile(); 

     for(int i =0; i<aryLines.length; i++) 
     { 
      System.out.println(aryLines); 
     } 
    } 

    catch(IOException e) 
    { 
     System.out.println(e.getMessage()); 
    } 
} 
    } 

はそれが見つけることができないクラスファイルです:: は、ここでの主なクラスファイルです

package textfiles; 

import java.io.IOException; 
import java.io.FileReader; 
import java.io.BufferedReader; 

public class ReadFile 
{ 
private String path; 
int numberOfLines=0; 

public ReadFile(String file_path) 
{ 
    path = file_path; 
} 

public String[] OpenFile() throws IOException 
{ 
    FileReader fr = new FileReader(path); 
    BufferedReader br = new BufferedReader(fr); 

    int numberOfLines = readLines(); 
    String[] textData = new String[numberOfLines]; 

    for(int i=0; i<numberOfLines; i++) 
    { 
     textData[i] = br.readLine(); 
    } 

    br.close(); 
    return textData; 
} 

int readLines() throws IOException 
{ 
    FileReader file_to_read = new FileReader(path); 
    BufferedReader bf = new BufferedReader(file_to_read); 

    String aLine; 

    while((aLine = bf.readLine()) != null) 
    { 
     numberOfLines++; 
    } 

    bf.close(); 
    return numberOfLines; 
} 
    } 

私はのjavacテキストファイルを実行しようとしました\ ReadFile.javaとjavacのテキストファイル\ FileData.java thisのための提案として。それは動作しません。私はReadFileをコンパイルしてすべてのエラーを修正したことを確認しました。私が取得 コンパイルエラーがある:私はメモ帳を使用して++と.cmdがい

C:\Users\Liloka\Source>javac FileData.java 
FileData.java:13: cannot find symbol 
symbol : class ReadFile 
location: class textfiles.FileData 
        ReadFile file = new ReadFile(file_name); 
        ^
    FileData.java:13: cannot find symbol 
    symbol : class ReadFile 
    location: class textfiles.FileData 
        ReadFile file = new ReadFile(file_name); 
             ^
    2 errors 

ので、それはIDEのエラーすることはできません。 ありがとうございます!

答えて

8

は、Javaファイルはすべてtextfilesディレクトリにあることを確認してください:

textfiles/FileData.java 
textfiles/ReadFile.java 

そして実行します。

javac textfiles/FileData.java textfiles/ReadFile.java 
java textfiles.FileData 

をあなたのコードがそのまま動作します。

Cを:私はあなたが間違ったディレクトリからコンパイルしていると思うユーザーはLiloka \ソース>のjavac FileData.java

textfilesディレクトリへFileData.javaを移動します\ \。

+0

ありがとうございました!それは実行されますが、何らかの理由で私は "[Ljava.lang.String; @ 19821f"ではなく "One"を印刷しています。なぜこれが分かっていますか? :S ありがとうございました:) – liloka

+0

ようこそ。 'System.out.println(aryLines)'を 'System.out.println(aryLines [i])'に変更してください。 [ArrayのtoString()の詳細情報](http://stackoverflow.com/questions/7060016/why-does-tostring-method-in-java-doesnt-seem-to-work) – palacsint

+0

ありがとう..私は '私は最初にそれを逃したと信じていない! – liloka

4

メインクラスで使用されているすべてのJavaファイルをコンパイルする必要があります。 ReadFileはFileDataで使用されるため、コンパイルする必要があります。

あなたは

javac Filedata.java ReadFile.java 

または

javac *.java 

を試しましたか?

+0

"私はReadFileをコンパイルしてそこにあるすべてのエラーを修正したことを確認しました。" はい私はこれを行いました:それはコーディングエラーではなく場所によるものでした。でもありがとう! – liloka

+0

@liloka私は同時に意味した。別途ではありません。とにかく、あなたがやったと思う。 –

+0

ああ、とにかくやってしまった。あなたが同時にコンパイルできることを知らなかった。だからこそありがとう:) – liloka

関連する問題