SIGAR API를 사용하여 시스템 정보를 수집하려고합니다. 내 라이브러리에 sigar.jar를 포함시킨 후 Netbeans는 sigar-amd64-winnt.dll
이라는 오류를 발견했습니다. 해당 파일을 라이브러리에 추가 한 후 완벽하게 작동했습니다.jar/exe로 패키징 한 후 SIGAR API가 작동하지 않습니다.
이제 NetBeans를 사용하여 프로젝트를 빌드하기 위해 실행 가능한 jar 파일을 만들어야했습니다. Netbeans은 .dll 파일을 자동으로 삭제하고 수동으로 dist 폴더로 복사 한 후 내 프로그램이 작동했습니다. 지금은 Launch4j를 사용하여 exe 파일을 만들려고합니다. 내가 그것을 실행할 때 Java 예외가 throw됩니다. 아마도 Launch4j가 .dll 파일을 삭제했기 때문입니다.
Launch4j가 exe 파일에 포함 시키려면 어떻게해야합니까?
나는 수많은 답변을 통해 찾아 볼 수 있지만 내 문제를 해결할 수 없었다.
Launch4j 일부 below- 어떤 도움을 주시면 감사하겠습니다
sigar-amd64-winnt.dll ... can't reference it or bundle it with .jar
How to include SIGAR API in Java Project
..편집을 언급 한 것은 내가 실행 테스트 할 때 로그에 다음과 같은 예외를 제공합니다 exe wrapper-
Exception in thread "main" java.lang.NoClassDefFoundError: org/hyperic/sigar/SigarException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.hyperic.sigar.SigarException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 6 more
에 의해 생성 된 실제 실행 가능한 병이다 그러나이 생성됩니다 때마다 문제가
.so
파일의 경로입니다 temp 폴더에 새 파일이 생기면 프로그램을 여러 번 실행하면 C 드라이브가 매일 하루 종일 사용됩니다. 1Mb 3 회 실행 –'sigar.deleteOnExit();'는 JVM 종료시 파일이 삭제되는지 확인합니다. – Pranav