2008-09-08 1 views
3

Java6로 작성된 Solaris 용 명령 행 응용 프로그램에서 작업하고 있습니다. 나는 많은 유닉스 도구가 허용하는 것처럼 (쉘, VIM 명령 모드 프롬프트 등) 위아래 화살표를 사용하여 이전 명령의 내역을 스크롤 할 수 있기를 원합니다.Unix 명령 행 응용 프로그램에 명령 호출 추가하기

이것을 달성하기위한 표준 방법이 있습니까? 아니면 내 자신을 굴려야합니까?

답변

5

예, GNU readline 라이브러리를 사용하십시오.

+0

표준 방법이 있다는 것을 의미합니다 ... –

+0

대답이 "나쁘다"는 것이 아니라면 나는 downvotes를주지 않지만, 이것이 GPL 요소가 주어진다면 대답이 받아 들여지는 것에 놀랐습니다. –

+0

@ Jason : GPL 요소는 무엇입니까? 코드와 함께'readline'을 배포 할 필요가 없습니다. 클라이언트가 시스템에 가지고 있다고 가정하거나 설치 방법에 대한 지시 사항을 제공 할 수 있습니다. Audacity가 ffmpeg를 사용하는 방식과 비슷합니다. 그들은 배포 할 수있는 라이센스가 없지만 가져 오는 방법을 알려주고 소프트웨어에서 사용합니다. –

3

나는 JLine과 같은 것을 찾고 있다고 생각하지만 결코 사용하지 않았으므로 그 품질을 증명할 수는 없다.

그녀는 분명히 자동 완성 및 명령 줄 기록을 처리 할 수 ​​있으며 마지막 릴리스는 최근 (금년에 2 억)이므로 절대로 죽은 것이 아닙니다.

2

ledit는 그런 종류의 일에 리눅스에서 훌륭합니다. 솔라리스에서 쉽게 컴파일됩니다.

설명 : ledit은 다른 명령 행 응용 프로그램으로 호출을 래핑하고 파일을 전달하여 기록을 지속적으로 저장할 수도 있습니다. http://cristal.inria.fr/~ddr/ledit/

1

은 GNU 작성한 Readline에 JNI 기반 바인딩을 제공하는 소스 포지 프로젝트, http://java-readline.sourceforge.net/,있다 :

여기 홈페이지입니다. 나는 (실제 프로젝트에서는 사용되지 않았다) 그것으로 놀았으며, 모든 기능을 확실히 다루고있다.

1

경고 : GNU readline는 GPL 라이선스 조건이 적용됩니다 :

의 Readline은 GNU 일반 공중 라이선스의 규정에 따라 분산 무료 소프트웨어입니다, 버전 2는이 을 의미 당신이 사용하려는 경우 프로그램에서 사용자가 을 누구에게나 배포하거나 배포하면 프로그램은 무료 소프트웨어 여야하며 GPL 호환 라이센스가 있어야합니다. 라이센스가 GPL과 호환되도록 에 관한 조언을 원하시면 에 [email protected]로 문의하십시오.

즉, Readline을 사용하면 라이브러리의 GPL이 전체 프로그램으로 확산됩니다. (라이브러리에 런타임 연결을 허용하고 라이브러리 자체 개선을 위해서만 오픈 소싱이 필요한 LGPL과 대조) 상업용 응용 프로그램을 개발하지 않더라도 상용 세계에서 우리를 위해, 이것은 쇼 스토퍼입니다.

어쨌든 the wikipedia page에는 유망한 것으로 들리는 JLine을 비롯한 몇 가지 대안이 나와 있습니다.

그냥 제쳐두고 : 나는 의료 제품을 디자인하는 회사에서 일하고 있습니다. 우리는 PC 소프트웨어를 제로 (0)로 만듭니다. 거의 모든 소프트웨어는 우리가 설계 한 임베디드 시스템에서 실행됩니다 (우리는이 소프트웨어의 판매/업그레이드에서 돈을 벌지 않고 제품 자체 만). 때로는 최종 사용자의 PC에서 실행할 수있는 소프트웨어 진단 도구가 있습니다.(GPL 라이브러리를 사용하는 것이 가능할 수도 있지만, 잘 모르겠다 고 생각하는 고객에게 출시되지 않은 설계/제조/테스트 소프트웨어) 의료 제품은 상당히 엄격한 통제를하고 있습니다. 당신은 기본적으로 사용자에게 안전하다는 것을 FDA에 증명해야합니다. 최종 사용자가 "오,이 소프트웨어가 마음에 들지 않거나 XYZ의 애프터 마켓 대체품을 사용할 것"이라고 결정할 수있는 것과는 다릅니다. 장치 제조사는 막대한 책임을지게됩니다.

+0

이런, 익명의 no-comment -1 .... –

+0

(내 downvote 아님)에 대한 감사하지만 불필요하게 경멸받는 "독살 된 것"이라고 생각합니다. – wnoise

+0

"중독 됨"이 제거되었습니다. –