2013-04-25 2 views
3

Java에서 어셈블리 또는 응용 프로그램의 버전을 가져올 방법이 있습니까?Java에서 어셈블리 버전 가져 오기

예를 들어 Program Files에 .NET .dll 파일이 있습니다. 일반적으로 C++에서 JNI 메소드를 호출 할 수 있도록이 .dll에서`loadLibrary '를 호출합니다.

System.loadLibrary("MyJniAssembly"); 

나를 올바른 방향으로 안내 할 수 있습니까? 감사.

+0

자바 코드를 제어 할 수 있습니까? – Fildor

+0

당신은 sth을 찾고 있습니다. @structoverflow.com/questions/8273630/checking-java-assembly –

+0

@Fildor : 예 Java 코드를 제어 할 수 있습니다. @ Barış : 정확히는 아닙니다. 내 DLL을보고 버전 번호 (예 : 1.0.0.0)를 가져 오려고합니다. – gwin003

답변

2

가장 간단한 방법은 해당 정보를 어셈블리에 구현 된 다른 기본 메서드에 표시하는 것입니다. 거기에서 할 수 없다면, 그런 방법으로 관심있는 어셈블리 나 타입을 나타내는 매개 변수를 취하는 새로운 어셈블리를 만들어야합니다.

+0

그래서 내가 올바르게 이해한다면 가장 쉬운 방법은 C++ dll을 호출하는 새로운 네이티브 메소드를 생성 한 다음 거기에 어셈블리 버전을 가져 오는 것입니다. C++ dll은 다른 C# dll을 호출하므로, 관심이있는 C++ 또는 C# dll의 버전을 반환하는 다른 새 dll을 만들어야합니까? – gwin003

+0

예. 이 메서드는 특정 어셈블리 버전을 반환하거나 해당 시점에로드 된 모든 어셈블리 목록을 반환 할 수 있습니다. 그러한 메소드가 구현되는 곳은 변경할 수있는 어셈블리와 새 어셈블리에 대해'System.loadLibrary '를 호출 할 수 있는지 여부에 달려 있습니다. –

+0

내가 버전을 확인해야하는 어셈블리 중 하나를 제외한 모든 것을 제어 할 수 있습니다. 그래서 JNI에서 새로운 네이티브 메소드를 구현할 생각이라면 C++ 코드는 내가 관심있는 dll의 버전 번호를 리턴 할 것입니다. – gwin003

관련 문제