我有以下结构:
myapp.jar
lib/
myapp.jar
是一个可执行jar,包含启动画面图像资源并使用SplashScreen-Image
清单条目。 lib/
包含许多其他jar文件。
如果我运行java -jar myapp.jar
,则会显示启动画面,但(正如预期的那样)程序无法在lib/
中找到其依赖项。
如果我运行java -cp myapp.jar:lib/* mypackage.MainClass
,它会找到它的依赖项,但不会显示启动画面。 SplashScreen.getSplashScreen()
返回null。
如果我运行java -cp myapp.jar:lib/* -splash:images/splash.jpg mypackage.MainClass
,则启动画面仍然无效。显然它将images/splash.jpg
视为相对文件系统路径,而不是类路径资源。
尝试将-cp
与-jar
合并,即java -cp myapp.jar:lib/* -jar myapp.jar
的行为与java -jar myapp.jar
完全相同。 -cp
显然忽略了-jar
。
除了与可执行jar分开提供启动图像之外,还有其他解决方案吗?