2013-11-23 2 views
1

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

Я знаю, что могу получить аргументы виртуальной машины Java с помощью:

RuntimeMXBean RuntimemxBean = ManagementFactory.getRuntimeMXBean(); 
List<String> arguments = RuntimemxBean.getInputArguments(); 

Однако чтение над javadoc для RuntimeMXBean я не могу показаться, чтобы выяснить, как получить остальные аргументы.

Я также пытался получить прикольное выполнение командной строки с помощью:

String arguments = System.getProperty("sun.java.command") 

Однако это также не работает на каждой реализации Явы. Возможно ли это, и если да, то как?

Редактировать: Для уточнения у меня нет возможности изменить исходный проект, загружающий файлы классов.

+0

Связанные: http://stackoverflow.com/questions/5061367/how-to-get-the-command-line-arguments-from-another-class-with-java и http://stackoverflow.com/questions/54686/how-to-get-a-list-of-current-open-windows-process-with-java –

ответ

1

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

+0

Или просто передайте копию аргументов классу при вызове конструктора или просто передайте копию в функция метода. – steveha

+0

Я должен был уточнить, но вся идея заключается в том, что загруженные классы не предоставлены аргументами (и я не являюсь создателем проекта, загружающим их). Я бы подумал о создании запроса на перенос для изменения какого-либо доступа для этого, но в целом мне было любопытно, как получить это косвенно. – Rogue

+0

@Rouge В этом случае у меня нет подсказки, что делать. Сожалею! – 0x277F

Смежные вопросы