20

Tôi hiện đang làm việc trên một chương trình tiện ích nhỏ chỉ yêu cầu giao diện dòng lệnh, và tôi bắt đầu tự hỏi liệu Java có cung cấp cách thức chuẩn nào để tạo CLI hay không, theo cách tương tự như Swing và các giao diện thích hợp cho GUI. Tôi không thực sự quan tâm đến các tham số dòng lệnh và phân tích cú pháp của chúng, mà là sự tương tác dựa trên lệnh mà người dùng có với chương trình để sử dụng nó. Điều này là dành cho các tình huống mà GUI đơn giản là không cần thiết hoặc không phải là một tùy chọn để sử dụng chương trình. Googling các chủ đề khá nhiều chỉ dẫn đến hướng dẫn về cách sử dụng BufferedReader và thích làm tương tác thô sơ với người dùng, nhằm vào mọi người học những điều cơ bản của Java và viết UI đơn giản yêu cầu tên và bản in "Hello World ! " vv ..Java CLI UI-design: khung hoặc thư viện?

Có thư viện nào tập trung vào việc cung cấp một khung tốt để nhanh chóng triển khai giao diện người dùng CLI phức tạp hơn hay đây thực sự là thứ mà mọi người thực hiện theo cách đặc biệt cho tiện ích của riêng họ?

Có thể ai đó biết về các mẫu để triển khai được tạo lại trong thời gian khi không phải mọi thứ đều là đồ họa? Đó cũng sẽ là tài nguyên hữu ích.

+0

Apache Commons CLI (http://commons.apache.org/cli/) có giúp bạn không? – sateesh

+3

Không, Apache Commons CLI thực sự được thực hiện để phân tích các đối số dòng lệnh và không thực sự góp phần thiết kế hoặc thực hiện giao diện người dùng khác. – Fuu

Trả lời

6

lẽ CLI Toolkit ...

http://alexis.royer.free.fr/CLI/

+0

Điều này trông giống như một cách tiếp cận tốt đẹp, chắc chắn là có liên quan nhất cho đến nay. – Fuu

+0

Thật không may nó đòi hỏi cgywin trên Windows. –

3

Có một dự án có tên JLine cung cấp hỗ trợ đa nền tảng cho việc xử lý đầu vào chung dòng lệnh:

http://jline.sourceforge.net/

Thêm một thư viện hỗ trợ hơn một khuôn khổ mặc dù.

+0

Thật vậy, không có khung thực sự để nhúng CLI trong Java, và jline là thư viện nổi bật nhất cho một tác phẩm như vậy. Tôi nghĩ rằng nó được sử dụng, ví dụ, cho trình thông dịch groovy ở chế độ dòng lệnh. – Riduidel

+0

Nhìn vào JLine, nó sẽ giúp chủ yếu bằng cách cung cấp tự động hoàn thành cho các lệnh đã nhập. Hữu ích, nhưng không thực sự đáp ứng các tiêu chí. – Fuu

1

Hãy thử tìm kiếm lời nguyền và java, một cái gì đó giống như http://www.google.co.uk/search?q=curses+for+java. Lâu rồi CHARVA (http://www.pitman.co.za/projects/charva/index.html) trông thật đẹp.

+2

Các liên kết thú vị, chúng có cách tiếp cận về cơ bản chuyển giao GUI Swing/AWT thành thiết bị đầu cuối dựa trên văn bản. Vấn đề là nó không làm giảm nỗ lực phát triển đó là mục tiêu của giao diện người dùng CLI nhanh chóng, kể từ đó bạn cũng có thể làm điều đó trong Swing và có một giao diện đồ họa.:) – Fuu

6

Bạn cũng có thể có một cái nhìn và Clamshell-cli hoặc vỏ mùa xuân:

  • Clamshell-cli là tương đối đơn giản và dễ sử dụng: Bạn có thể xem jmx-cli để có một ví dụ hay về những gì có thể được thực hiện với nó.

  • Spring Shell lớn hơn nhưng nhiều tính năng hơn (hoàn thành tab, v.v.). Nó đã được trích xuất từ ​​spring Roo và được phát hành dưới dạng khung độc lập