2009-05-07 12 views
2

CSV 파일과 함께 작동하는 Java 데스크톱 응용 프로그램이 있습니다. 그리고 몇 가지 기능을 추가하고 싶습니다. 이 순간 나는 기본 시스템 텍스트 편집기로 선택한 파일을 열어야합니다. Windows에서 프로그램을 실행할 때 notepad.exe를 호출해도 아무런 문제가 없지만 * nix 시스템에서는 어떻게해야합니까? 솔루션의 한 가지 방법은 맞춤식으로 프로그램 옵션에서 텍스트 편집기를 사용하는 방법을 설정하는 것이지만 최상의 솔루션은 아닙니다. ...전화 시스템 텍스트 편집기

하지만 기능이 부족한 경우에도 프로그램을 직접 작성하는 것이 더 나을 것입니다. ?

+0

내가 잘못 될 수도 있지만 * nix에서 스크립트는 일반적으로 기본 편집기에 대한 변수가없는? – willcodejavaforfood

+0

재미 있긴하지만 오늘 아침에 나는 궁금해했다. Windows®에서 기본 텍스트 편집기를 어떻게 호출해야 하는가? ☺ GNU/Linux에서 "$ EDITOR"변수가 될 수 있지만 Windows 용 방법을 알지 못했습니다. 'notepad.exe '를 호출하는 것은 대체적인 행동이어야한다고 생각합니다. 대부분 사용자가 선호하는 편집기를 사용합니다. 그러나 나는 Windows®에서 그 유형에 따라 파일을 여는 DE의 기능을 호출해야한다는 것을 알았습니다. –

답변

6

내가, 당신이 찾고있는 무엇을 할 수 java.awt.Desktop.edit()을 믿는다 텍스트 편집기보다는 파일을 TXT로 임시 또는 영구적으로 바꿀 수 있습니다.

2

이러한 기능을 위해서는 JTextArea을 사용하고 기본 텍스트 편집기를 제공하는 것이 훨씬 더 좋습니다.

어쨌든 BareBonesBrowserLauncher을 살펴보십시오. 모든 플랫폼에서 기본 브라우저를 시작할 수있는 Java 클래스입니다. 귀하의 필요에 맞게 조정할 수 있습니다. 거기에서 복사 : 그것은 OS가 파일을 CSV의 경우 보통이 아니라 스프레드 시트 애플리케이션 인으로 편집해야합니다 생각대로 실행됩니다 있지만

String[] editors = { "vim", "emacs", "vi",}; 
String editor = null; 
for (int count = 0; count < editors.length && editors == null; count++) 
    if (Runtime.getRuntime().exec(new String[] {"which", editors[count]}).waitFor() == 0) 
     editor = editors[count]; 
if (editor == null) 
    throw new Exception("Could not find editor"); 
else Runtime.getRuntime().exec(new String[] {editor, filename}); 
+0

간단한 CSV 편집 인 경우 JTextArea의 경우 +1 – Mark

1

이 시도 : 맥 그렇지 않으면 java.awt.Desktop가 해결되지 않을 JVM 1.6에 기본 맥 OS 10.5 (JVM 1.5)에서 라이브러리를 변경 기억하시기 바랍니다에 대한 응용 프로그램이

import java.awt.Desktop; 
import java.io.File; 
import java.io.IOException; 

public class systemEditor { 

    public static void main(String[] args) { 
     Desktop dt = Desktop.getDesktop(); 
     try { 
      dt.open(new File("FileName.csv")); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

} 

합니다.

Michael Borgwardt가 언급했듯이 텍스트 편집기를 열지 않습니다. 그것은 내 경우에 MS Excel을 엽니 다. 당신이 자바 API에서 볼 수있는 추가 정보를 위해

:

java.awt.Desktop

java.io.File