在8u171/172上使用javapackager创建的本机包包含更多文件
我运行以下命令为.jar文件创建本机捆绑包:在8u171/172上使用javapackager创建的本机包包含更多文件,java,javapackager,Java,Javapackager,我运行以下命令为.jar文件创建本机捆绑包: javapackager.exe-deploy-native image-srcfiles-appclass-outdir out-outfile test 使用Java 8u171/172,bundles/AppName/文件夹(包含用于启动Java应用程序的.exe和一些其他内容)包含以下DLL文件: api-ms-win-core-console-l1-1-0.dll api-ms-win-core-datetime-l1-1-0.dll ap
javapackager.exe-deploy-native image-srcfiles-appclass-outdir out-outfile test
使用Java 8u171/172,bundles/AppName/
文件夹(包含用于启动Java应用程序的.exe和一些其他内容)包含以下DLL文件:
api-ms-win-core-console-l1-1-0.dll
api-ms-win-core-datetime-l1-1-0.dll
api-ms-win-core-debug-l1-1-0.dll
api-ms-win-core-errorhandling-l1-1-0.dll
api-ms-win-core-file-l1-1-0.dll
api-ms-win-core-file-l1-2-0.dll
api-ms-win-core-file-l2-1-0.dll
api-ms-win-core-handle-l1-1-0.dll
api-ms-win-core-heap-l1-1-0.dll
api-ms-win-core-interlocked-l1-1-0.dll
api-ms-win-core-libraryloader-l1-1-0.dll
api-ms-win-core-localization-l1-2-0.dll
api-ms-win-core-memory-l1-1-0.dll
api-ms-win-core-namedpipe-l1-1-0.dll
api-ms-win-core-processenvironment-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-1.dll
api-ms-win-core-profile-l1-1-0.dll
api-ms-win-core-rtlsupport-l1-1-0.dll
api-ms-win-core-string-l1-1-0.dll
api-ms-win-core-synch-l1-1-0.dll
api-ms-win-core-synch-l1-2-0.dll
api-ms-win-core-sysinfo-l1-1-0.dll
api-ms-win-core-timezone-l1-1-0.dll
api-ms-win-core-util-l1-1-0.dll
api-ms-win-crt-conio-l1-1-0.dll
api-ms-win-crt-convert-l1-1-0.dll
api-ms-win-crt-environment-l1-1-0.dll
api-ms-win-crt-filesystem-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-locale-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-multibyte-l1-1-0.dll
api-ms-win-crt-private-l1-1-0.dll
api-ms-win-crt-process-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-time-l1-1-0.dll
api-ms-win-crt-utility-l1-1-0.dll
msvcp140.dll
msvcr100.dll
packager.dll
ucrtbase.dll
vcruntime140.dll
其中大部分似乎也出现在运行时/bin/
子文件夹中
与此相反,使用Java 8u161运行相同的javapackager命令只会导致包含以下DLL文件(同样,除了.exe和其他内容外):
我认为8u161实际上缺少msvcr100.dll(根据),但在其他方面似乎更合理
我真的需要bundle文件夹中的所有api-ms-win-*
dll吗?请注意,它们仍然可以在runtime/bin/
文件夹中供所包含的JRE使用,但不知何故,我无法想象它们对于AppName.exe的初始执行是必需的
我发现这似乎反映了这种变化。它修复了8u161中提到的问题,添加
api ms win-*
DLL似乎是故意的。我仍然不相信所有这些都是必需的,虽然我没有什么好的理由,除了它看起来很奇怪。没有它们,应用程序似乎运行良好,但我当然不能确定在任何情况下都会如此。这是旧版本,但我认为其背后的原因是,从这个版本开始,javapackager
似乎是Java 9+的后端口。这与下面仍然存在的问题相吻合,这似乎也会影响名为jpackager
的后续应用程序。是的,它们似乎是必要的。
msvcp140.dll
packager.dll
vcruntime140.dll