2017-01-16 34 views
5

Có cách nào trong java để lấy các đối số dòng lệnh đã được chuyển đến một chương trình bên ngoài của hàm main không?Java - lấy đối số dòng lệnh, OUTSIDE của chính?

Tôi đang viết một số mã là một phần của ứng dụng lớn hơn mà tôi không kiểm soát và tôi muốn biết dòng lệnh args là gì, mà không sửa đổi chức năng main.

Lưu ý: Tôi đã xem how to get the JVM argumentshow to get the arguments in main, nhưng muốn tải ứng dụng này ở các phần khác của ứng dụng mà không lưu chúng trong chức năng main mà tôi không kiểm soát.

+0

Vâng, nếu bạn biết tên của những lập luận (và muốn sử dụng tên ở nơi đầu tiên) bạn có thể chuyển chúng thành thuộc tính hệ thống để thay thế. Vì vậy, bạn có thể truy cập chúng thông qua 'System.getProperty (name)'. – Thomas

+1

Đồng thời kiểm tra: http://stackoverflow.com/questions/2541627/how-do-i-get-the-commandline-that-started-the-process – JFPicard

+1

Bạn có thể thử thuộc tính "sun.java.command". Nó cho phép bạn truy cập vào lệnh đầy đủ đã được sử dụng để thực thi jar (tôi sẽ kiểm tra các tài liệu, thời tiết này là di động giữa các triển khai JVM). – Paul

Trả lời

2

Khi khởi chạy jvm theo cách này: java -DmyArgument=myValue -jar your.jar bạn có thể nhận được giá trị của myArgument ở khắp mọi nơi trong mã java của bạn với String myArg = System.getProperty("myArgument");

+0

Cảm ơn ... đó là hữu ích, nhưng các args mà tôi đang tìm kiếm không được thông qua như các đối số kiểu '-D' .... –

Các vấn đề liên quan