2013-04-25 7 views
3

Есть ли способ получить версию сборки или приложения на Java?Получить версию сборки в Java

Например, у меня есть файл .NET .dll, расположенный в Program Files. Обычно я вызываю `loadLibrary 'в этой .dll, поэтому я могу вызвать JNI-методы на C++.

System.loadLibrary("MyJniAssembly"); 

Может кто-нибудь указать мне в правильном направлении? Благодарю.

+0

У вас есть контроль над кодом Java? – Fildor

+0

Вы ищете sth. например: http://stackoverflow.com/questions/8273630/checking-java-assembly –

+0

@Fildor: Да, у меня есть контроль над кодом Java. @ Barış: Не совсем. Я хочу посмотреть на свою DLL и получить ее номер версии, т. Е. «1.0.0.0» – gwin003

ответ

2

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

+0

Итак, если вы правильно поняли, самым простым способом было бы создать новый собственный метод для вызова в dll C++, а затем получить там ассемблерные версии? С ++ dll вызывает другую C# dll, так что я должен создать другую новую dll, которая просто возвращает версию моей C++ или C# dll, которой меня интересует? – gwin003

+0

Да. Метод может вернуть версию любой сборки или вернуть список всех сборок, загруженных в момент времени. Там, где такой метод реализован, зависит от того, какие сборки вы можете изменить, и если вы можете вызвать 'System.loadLibrary' для новой сборки. –

+0

Из собраний мне нужно проверить версию, у меня есть контроль над всеми, кроме одного. Поэтому я думаю, что я буду внедрять новый собственный метод в JNI, тогда код на C++ вернет номера версий DLL, которые меня интересуют. Правильно ли это звучит? – gwin003

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