2013-07-31 2 views
0

Eclipse를 사용하여 개발 중이며/bin 디렉토리에 파일이 있어야하는 API를 사용하고 있습니다. . 내 응용 프로그램을 항아리로 내 보낸 다음 필요한 파일을 jar 파일과 같은 디렉터리에 저장했지만 터미널을 사용하여 응용 프로그램을 실행하면 응용 프로그램에서 해당 파일을 찾을 수 없습니다. 이 경로 문제를 이해할 수 없습니다.bin 디렉토리에있는 파일을 필요로하는 외부의 java jar 파일 실행

나는이 명령을 사용하여 응용 프로그램을 실행 해요 :

java -jar app.jar 

가 나는 또한 jar 파일이 들어있는 디렉토리에 터미널 디렉토리를 변경하고 내가 함께 노력 :

java -cp . -jar app.jar 

'didn를 그 일하지 마라.

편집 : 오류 : 응용 프로그램이 필요한 파일을 찾을 수 없습니다. 이클립스에서는 API가/bin 디렉토리에 파일을 위치시켜야했다.

Exception in thread "main" java.io.IOException: failed to find resource /cmu/arktweetnlp/50mpaths2 
    at cmu.arktweetnlp.util.BasicFileIO.getResourceReader(BasicFileIO.java:233) 
    at cmu.arktweetnlp.impl.features.WordClusterPaths.<init>(WordClusterPaths.java:29) 
    at cmu.arktweetnlp.impl.features.FeatureExtractor.initializeFeatureExtractors(FeatureExtractor.java:146) 
    at cmu.arktweetnlp.impl.features.FeatureExtractor.<init>(FeatureExtractor.java:30) 
    at cmu.arktweetnlp.Tagger.loadModel(Tagger.java:39) 
    at com.POSTest.main(POSTest.java:22) 

터미널 내용 : 여기

public static void main(String[] args) { 
     Tagger tagger = new Tagger(); 
     String modelFilename = "model.20120919"; 

     System.out.println("Loading model ..."); 
     try { 
      tagger.loadModel(modelFilename); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     System.out.println("Done loading model."); 
    } 

이 API의 소스 코드입니다 :

MacBook-Pro:ArabicTwitterEye ma$ ls 
CSVArabicTwitterEye.jar log   resources 
cmu   profiles  tweets.csv 
MacBook-Pro:ArabicTwitterEye ma$ 

여기에 간단한 자바 코드의

여기에 전체 예외입니다

(210)는 또한이를 확인 :

public static BufferedReader getResourceReader(String resourceName) throws IOException { 
     assert resourceName.startsWith("/") : "Absolute path needed for resource"; 

     InputStream stream = BasicFileIO.class.getResourceAsStream(resourceName); 
     if (stream == null) throw new IOException("failed to find resource " + resourceName); 
     //read in paths file 
     BufferedReader bReader = new BufferedReader(new InputStreamReader(
      stream, Charset.forName("UTF-8"))); 
     return bReader; 
    } 
+2

및 무엇이 오류 메시지입니까? 찾을 수없는 것은 무엇입니까 –

+1

자세한 정보를 표시하십시오. 우리는 당신이 우리를 도울 때까지만 당신을 도울 수 있습니다. – Jashaszun

+1

내 보낸 항아리의'MANIFEST.MF' 안에 무엇이 있습니까? 'Class-Path' 엔트리를 확인하십시오. –

답변

0
  1. 오른쪽 이클립스에서 프로젝트를 클릭합니다. 그런 다음 New -> Source Folder를 누릅니다.
  2. 원본 폴더의 이름을 지정하십시오. 예 : cmu_src.
  3. cmu_src에서 전체 cmu 디렉토리를 복사하거나 드래그하십시오. 다음 항아리를 만드십시오.

Eclipse는 일반적으로 jar 파일을 만들 때 resource/assets 디렉토리를 두지 않습니다.