<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Sep 20, 2022, at 5:50 PM, Michael Hall <<a href="mailto:mik3hall@gmail.com" class="">mik3hall@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta charset="UTF-8" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Still you could use post-processing to add whatever java binary executable commands you wanted. This again would mean changes to the embedded jdk that might have signing side effects. I haven’t tested. </span></div></blockquote><br class=""></div><div>Thinking about this I looked at my application that includes java commands and saw that currently I include all. And all appear to be of fixed size. So I assume some kind of launcher stub?</div><div><br class=""></div><div>I then remembered </div><div><br class=""></div><div>[macos]: App bundle cannot upload to Mac App Store due to info.plist embedded in java exe</div><div><a href="https://bugs.openjdk.org/browse/JDK-8286122" class="">https://bugs.openjdk.org/browse/JDK-8286122</a></div><div><br class=""></div><div>The bug being due…</div><div><blockquote type="cite" class=""><span style="caret-color: rgb(23, 43, 77); color: rgb(23, 43, 77); font-family: "DejaVu Sans", sans-serif; font-size: 14px; background-color: rgb(255, 255, 255);" class="">ITMS-90511: CFBundleIdentifier Collision - The Info.plist CFBundleIdentifier value 'net.java.openjdk.java' of 'java' is already in use by another application. </span></blockquote>This because the launcher stub includes it’s own Info.pliat’s always using the same CFBundleIdentifier</div><div><br class=""></div><div>If I understand the resolution correctly…</div><div><a href="https://github.com/openjdk/jdk17u-dev/commit/6a4b6220f8dc184f408f1295865ed0ad2e3710ca" class="">https://github.com/openjdk/jdk17u-dev/commit/6a4b6220f8dc184f408f1295865ed0ad2e3710ca</a></div><div><br class=""></div><div>This effectively prohibits jpackage applications going to the App Store from using java native commands by disallowing the jlink option.</div><div>I realize this issue is closed and probably not yours to resolve.</div><div><br class=""></div><div>But wouldn’t it be possible to simply make the CFBundleIdentifier unique?</div><div>Maybe a hash of command name and application name, something like…</div><div>Hash(“java”+”MyCommandUsingMacAppStoreApp”)</div><div><br class=""></div><div>I don’t think the identifiers for the embedded commands need to be meaningful to the developer or anyone else. A good hash should pretty much eliminate collisions.</div><div><br class=""></div><div>My apologies if I’m simply repeating something dismissed in prior discussion.</div><div><br class=""></div><br class=""></body></html>