스프링 부트 앱이 있고 -Dloader.path =로 시작합니다. jar 파일 중 하나는 hive-exec.jar입니다. 이 파일에는 minlog-1.2.jar이라는 번들로 묶인 jar 파일이 있습니다. -Dloader.path에이 파일을 지정하면 오류가 발생합니다.스프링 부트 createJarFileFromFileEntry
중첩 된 항목 'minlog-1.2.jar'을 열 수 없습니다. 그것은 압축되었고 중첩 jar 파일은 압축없이 저장되어야합니다. 실행 가능한 jar 파일을 만드는 데 사용 된 메커니즘을 확인하십시오. at org.springframework.boot.loader.jar.JarFile.createJarFileFromFileEntry (JarFile.java:378) at org.springframework.boot.loader.jar.JarFile.createJarFileFromEntry (JarFile 된 .java : 355) org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive (JarFileArchive.java:108에서 org.springframework.boot.loader.jar.JarFile.getNestedJarFile (JarFile.java:341) 에서 ) org.springframework.boot.loader에서 org.springframework.boot.loader.PropertiesLauncher.getClassPathArchives에서 org.springframework.boot.loader.archive.JarFileArchive.getNestedArchives (JarFileArchive.java:92) (PropertiesLauncher.java:445) 에서 .Launcher.launch (Launcher.java:60) at org.springframework.boot.loader 내가 폴더에이 파일을 복사 -Dloader.path에서 해당 폴더를 추가하는 경우 .PropertiesLauncher.main (PropertiesLauncher.java:564는)
그러나, 나는 어떤 오류가 발생하지 않습니다.
무엇이 누락 되었습니까? 내가 대신 프로젝트의 메이븐의 의존성의 외부 항아리와 같은 데이터베이스 드라이버를 관리하기 위해 노력하고
내가 아는 한 loader.path를 사용하려면 jar 실행기 대신 'org.springframework.boot.loader.PropertiesLauncher'를 사용해야합니다. 나는 그것을 사용하고 있지만 여전히 같은 예외로 실패한다. Jar 발사기를 사용한다고 추측합니다. 이것에 대한 버그를 여는 것은 어떻습니까? – nir
'org.springframework.boot.loader.PropertiesLauncher'도 사용하고 있습니다. 나를 위해, 그것은 조금 이상하다. 우리는 jar 파일을 포함하는 디렉토리를 제공하고 jar 파일 자체를 제공함으로써 jar 파일을 가져 와서 다른 행동을 취한다. 귀하의 재량권을 따를 것이며 다음 문제를 열게됩니다 : https://github.com/spring-projects/spring-boot/issues/3701 –