Tôi phải tạo một chương trình sẽ in cài đặt mạng bằng cách sử dụng "ipconfig" cho Windows và "ifconfig" cho Linux, nhưng tôi cần thực hiện điều đó triển khai cho cả hai hệ điều hành.Làm thế nào để một chương trình java quyết định lệnh nào sẽ thực thi tùy thuộc vào os
5
A
Trả lời
9
Bạn có thể lấy tên của hệ điều hành thông qua
System.getProperty("os.name")
Có một cái nhìn tại this page cho một số mẫu mã.
Nếu đó là bởi bất kỳ cơ hội IP của các máy chủ địa phương mà bạn đang quan tâm, có nhiều cách để có được điều này trực tiếp trong Java:
Không có cách nào để xác định thông tin "hiển thị thông tin ip" là gì hoặc một hệ điều hành tùy ý. Bạn sẽ phải mã hóa cứng lệnh nào (nếu là một) cho mỗi tên hệ điều hành theo cách thủ công.
3
xây dựng trên aioobe's solution:
final String osname = System.getProperty("os.name").toLowerCase();
String processName;
if(osname.startsWith("win"))
processName="ipconfig /some /parameter";
else
processName="ifconfig -some -parameter";
Runtime.getRuntime().exec(processName);
3
Để tham khảo, đây là một bê tông example rằng thiết lập một tài sản duy nhất cho một hệ điều hành cụ thể:
if (System.getProperty("os.name").startsWith("Mac OS X")) {
System.setProperty("apple.awt.graphics.UseQuartz", "true");
}
5
Là một bổ sung cho các câu trả lời khác, tôi sẽ đề cập đến SystemUtils
từ Commons Lang hiển thị các hằng số khác nhau như IS_OS_UNIX
, IS_OS_WINDOWS
, v.v.
Các vấn đề liên quan
- 1. Java thực thi chương trình dòng lệnh
- 2. Làm cách nào để tạo chương trình Java thực thi?
- 3. Làm thế nào để thực thi tệp sql từ java
- 4. Làm thế nào để xác định một cửa sổ thực thi DLL phụ thuộc programatically?
- 5. Làm thế nào để vá một chương trình Java?
- 6. Làm thế nào để viết một chương trình trong C++ sao cho nó sẽ tự xóa sau khi thực thi?
- 7. Làm thế nào để thực hiện một chương trình C++ nghe lệnh hệ thống
- 8. Làm thế nào để Daemonize một chương trình Java?
- 9. Làm thế nào để lệnh easy_install thực thi các lệnh tùy chỉnh trong setup.py?
- 10. Làm cách nào để thực thi một chương trình bằng Maven?
- 11. Làm thế nào để biết dòng lệnh được Eclipse sử dụng để chạy chương trình java?
- 12. Thực thi tệp .jar từ một chương trình Java
- 13. Làm thế nào để làm cho một chương trình Java chạy trong nền?
- 14. Làm thế nào để tạo một chai thực thi với các chai phụ thuộc
- 15. Làm cách nào để thực thi mô-đun node.js như một tiến trình con của một chương trình node.js?
- 16. Làm thế nào để thêm những thứ vào một chương trình menustrip theo chương trình?
- 17. Làm cách nào để thực hiện lệnh dòng lệnh từ chương trình C++
- 18. Làm thế nào để f # quyết định tệp nào sẽ chạy khi khởi động?
- 19. Làm cách nào để thực thi một tập lệnh PHP từ Java?
- 20. Làm thế nào để quyết định màu phông chữ màu trắng hoặc đen tùy thuộc vào màu nền?
- 21. Làm thế nào để chạy một chương trình thực thi với tập tin cấu hình khác nhau?
- 22. Làm thế nào để tạo một phar thực thi?
- 23. Làm thế nào để tạo biểu đồ phụ thuộc chương trình cho chương trình C?
- 24. Làm thế nào để truy cập vào bộ nhớ từ một chương trình trong một
- 25. Làm thế nào để gỡ lỗi/thực hiện một chương trình Ocaml từng bước?
- 26. Làm thế nào để thiết kế một chương trình với nhiều tùy chọn cấu hình?
- 27. Làm một "vĩ mô" lệnh để chạy một chương trình
- 28. Chạy chương trình Java từ dòng lệnh phụ thuộc vào tệp jar?
- 29. Làm cách nào tôi có thể hợp nhất System.Data.SQLite vào một chương trình thực thi đơn lẻ?
- 30. Làm thế nào để lặp lại một lệnh thực thi trong terminal trong Linux?
Cảm ơn bạn. Tôi biết điều đó nhưng tôi cần phải biết làm thế nào để làm cho chương trình quyết định quá trình thực hiện trong thời gian chạy tùy thuộc vào os – jboy
"Mac OS X" cho tôi! –
@Tony Ennis: sau đó * "ifconfig" * sẽ hoạt động tốt ... (Ngoài ra còn có một ipconfig trên OS X, nhưng đó là một khác nhau). Bên cạnh đó, * ifconfig * của OS X là khá nhiều * ifconfig * của Linux. – SyntaxT3rr0r