2017-01-16 2 views
5

Есть ли способ в java получить аргументы командной строки, которые были переданы программе за пределами функции main?Java - получить аргументы командной строки, вне основного?

Я пишу код, который является частью большего приложения, которое я не контролирую, и я хотел бы знать, что такое командная строка, без изменения функции main.

Примечание: Я видел how to get the JVM arguments и how to get the arguments in main, но хотел бы получить его в других частях нашего приложения, без необходимости их сохранить в функции main, что я не в силах контролировать.

+0

Ну, если вы знаете имена этих аргументов (и нужно использовать имена в первую очередь) вы можете передать их как системные свойства. Таким образом, вы сможете получить доступ к ним через 'System.getProperty (name)'. – Thomas

+1

Также проверьте: http://stackoverflow.com/questions/2541627/how-do-i-get-the-commandline-that-started-the-process – JFPicard

+1

Вы можете попробовать объект "sun.java.command". Он дает вам доступ к полной команде, которая была использована для выполнения jar (я проверю документы, если это переносится между реализацией JVM). – Paul

ответ

2

При запуске виртуальная машина так: java -DmyArgument=myValue -jar your.jar вы можете получить значение myArgument везде в коде Java с String myArg = System.getProperty("myArgument");

+0

Спасибо ... это полезно, но аргументы, которые я ищу, не передаются как аргументы стиля -D' .... –