Tôi đã viết một chương trình bằng Java/JavaFX vì tôi cần hỗ trợ nền tảng chéo. Khi tôi tiến triển, tôi cần thực hiện một số hoạt động mạng OS ở mức thấp mà không thể thực hiện được trong Java. Tôi bắt đầu với Runtime.exec(), chuyển sang JNA/JNI, và bây giờ tôi lo lắng rằng việc duy trì tính tương thích của hệ điều hành cho Java sẽ kết thúc được nhiều công việc hơn là chỉ chuyển sang một ứng dụng gốc.Khả năng tương thích nền tảng chéo trong C/C++ (chuyển một dự án từ Java)?
Cách tốt nhất để làm điều này là gì?
Tôi biết GTK + được hỗ trợ bởi * nix và cửa sổ nên tôi nghĩ tôi sẽ sử dụng giao diện người dùng đó cho giao diện người dùng của mình. Sẽ khó khăn như thế nào để duy trì các phiên bản ứng dụng khác nhau của tôi cho mỗi hệ điều hành? Bạn có thể đề xuất một điểm bắt đầu để viết một cái gì đó mà cần phải được nền tảng chéo nhưng vẫn có quyền truy cập hệ điều hành cấp thấp? Tôi có rất nhiều kinh nghiệm Java (và một số lượng tốt của C + + với OpenGL) nhưng tôi đã không bao giờ phải quan tâm về bất cứ điều gì nhưng Linux trước.
Ngoài ra, có cách nào tốt để tạo gói dữ liệu thô, gửi ping ICMP và thực hiện các tác vụ mạng cấp thấp khác từ Java không?
http://www.savarese.com/software/rocksaw/ ?? – Thihara
Bạn sẽ phải cụ thể hơn. C++ chính nó là rất di động, thậm chí nhiều hơn so với Java theo một số cách, nhưng thư viện chuẩn là trừ đi so sánh. Trong C++, bạn thường cần phải dựa vào các thư viện của bên thứ ba hoặc nền tảng cụ thể để làm những việc như GUI như bạn đã nhận thấy. – congusbongus
ai đó đã đề cập đến một thư viện để làm cho nó rất dễ dàng cho mã java để gọi API OS. nhưng tôi không nhớ tên. – ZhongYu