2012-09-12 3 views
0

나는 두 클래스가 있습니다 : main.javadata.java입니다. 프로그래밍은 먼저 data.txt 파일에서 데이터를 읽어야합니다. Windows 시스템에서 작동합니다. 하지만 지금은 리눅스 서버를 컴파일하기 위해 ssh를 사용합니다. 작동하지 않습니다.리눅스에서 여러 자바 클래스와 텍스트 파일을 컴파일하는 방법

main.java, data.java, data.txt을 같은 폴더에 넣었습니다. 실행 후 javac data.java && javac main.java generalize 6 클래스 : main.class, data.class 및 어떤 클래스가 main.java에 정의 됨. 마침내 나는 java main을 실행합니다. 또는 java main && java data 모두가 NullPointerException입니다.

코드에 data.txt의 링크는 내가 ./data.txt

는 어쩌면 그들은이 같은 폴더 또는 다른 이유에 넣을 수 없습니다 사용합니다. 도와주세요.

미리 감사드립니다. data.java에 대한 코드의

부 : main.java

import java.util.*; 
import java.io.*; 

class main{ 
    public static void main (String[] args) { 
     //Define parameters of the algorithm 
     String file = new String("./data.txt"); 
+2

일부 코드와 스택 추적을 게시 할 수 있습니까? –

+0

문제를 재현하는 코드를 게시하십시오. 우리는 그것을 [SSCCE] (http://www.sscce.com)라고 부릅니다. 나는 왜 당신이 그것없이 NullPointerException을 얻는 지 짐작할 수 없다. –

+0

상기시켜 줘서 고마워, 나는 몇 가지 코드를 게시 할 수 있습니다. 그러나 주된 문제는 리눅스 서버에서 어떻게 실행 시키는가이다. 나는 작은 데이터를 가진 윈도우에서 결과를 얻을 수 있지만 리눅스에서는 얻을 수 없다. – bli

답변

0

문자 인코딩과 역할을 다른 선 끝 부분에 대한

import java.io.EOFException; 

import java.io.FileReader; 

import java.io.IOException; 
import java.io.LineNumberReader; 
import java.util.StringTokenizer; 

public class data{ 

    private LineNumberReader in; 
    String filename; 

    public data(String file){ 
     filename = file; 
     readProblem(); 
     readdis(); 
     read(); 
    } 
} 

코드입니다.

BufferedReader.readLine은 가능한 줄 끝을 제거합니다.

문자 집합을 명시 적으로 설정할 수 있습니다 (예 : "Windows-1252", Windows Latin-1). 그 사용을 위해

BufferedReader in = new BufferedReader(new InputStreamReader(
     new FileInputStream(file, "Windows-1252"); 
관련 문제