On 11/24/2019 10:41 PM, Michael Hall wrote:

On Nov 23, 2019, at 11:45 AM, Michael Hall <mik3h...@gmail.com> wrote:



On Nov 23, 2019, at 11:22 AM, Kevin Rushforth <kevin.rushfo...@oracle.com> 
wrote:

I just tried this and it worked fine for me:

jpackage --java-options '-Djava.security.policy=$APPDIR/all.policy' ...

(note that there should not be an extra "/app" since $APPDIR points to the app 
directory).

It generated this in the ApplicationName/app/ApplicationName.cfg file:

[JavaOptions]
-Djava.security.policy=$APPDIR/all.policy
Maybe something is different about running from a bat. Or I’m missing a typo or 
something.
Command line it seems to get past that error but gets…

Can not find WiX tools (light.exe, candle.exe)
Download WiX 3.0 or later from….
Error: Invalid or unsupported type: [null]

This is from a VirtualBox Windows 10 64bit virtual machine.

The bat file continues to get the same error. I’ll look closer to be sure it 
isn’t an error in my bat.

On OS X, yes APPDIR works when I remove ‘app’ from the path as you indicated.
To follow up on this a little bit.

I installed the indicated Wix. This in turn required a .Net framework of I 
believe 3.5.1. I tried the latest it still didn’t work. I installed the exact 
version indicated and it did work, Wix then installed.

I got a command line invocation to run through but still not entirely 
successful. If I remember right it indicated something about the installed 
incubator runtime not being suitable to run the application. I probably should 
of followed up immediately but didn’t. Sorry, about being sort of vague here. I 
do sort of wonder about this being a Windows jpackage dependency. I recently 
saw I think you on javafx mention that you didn’t like depending on 3rd party 
libraries?

I got to thinking that I needed something better than the bat file I was using 
that wasn’t working at all. It occurred to me I could try doing something with 
my own application which is a java shell intended to invoke things like 
jpackage. This got me looking closer at the jpackage parameters including 
@filename. This seemed a simple and effective way to do what my bat file was 
supposed to. Also what I am thinking of adding to my app. I tried this on 
Windows.

--input ./HalfPipe.app/Contents/app
--install-dir ./outputdir
--name HalfPipe
--runtime-image "c:/Program Files/Java/jdk-14"
--main-class us.hall.hp.common.LoaderLaunchStub
--add-modules 
java.compiler,java.desktop,java.logging,java.management,java.prefs,java.se,java.rmi,java.scripting,java.sql,java.xml,jdk.attach,jdk.jshell
--java-options '-Xmx1024m -Djava.security.policy=$APPDIR/all.policy 
-Dconsole=pane'
--main-jar halfpipe.jar

Notice the exclusive use of forward slash as per your earlier. This is run 
against a successfully built OS X version of the app. This currently gets…

C:\Users\mik3h\Documents\halfpipe_port>jpackage @jpkg.txt
WARNING: Using incubator modules: jdk.incubator.jpackage
java.nio.file.FileAlreadyExistsException: 
C:\Users\mik3h\AppData\Local\Temp\jdk.incubator.jpackage13266515172329575129\images\win-msi.image\HalfPipe\app\HalfPipe.cfg

Possibly a simple error on my part but it is not yet clear to me what.

1.) - you might learn more by running with --verbose ('jpackage @jpkg.txt --verbose') if you can sift thry the excess output.

2.) in my test app I need to escape the '$' in front of APPDIR because command is being processed first by shell, for example I have: (  --java-options '-splash:\$APPDIR/boinga.jpg' )

still - I don't understand how you get a FileAlreadyExists on a cfg file in the temp directory.

Oh - wait - I see the problem!

----------------------------------------

you are using the $APPDIR of one run of jpackage (albeit from a different OS) as the input dir of another run.

the APPDIR contains all the files from the input dir, plus a config file <app name>.cfg

so after copying all the files from the input dir, there is already a HalfPipe.cfg in the app dir before we try to create one.

I can reproduce this by adding an empty file "simple.cfg" to my input dir creating an app named simple.

This is probably a bug we can fix - but you should be able to work around it by removing

./HalfPipe.app/Contents/app/HalfPipe.cfg before running windows build.

/Andy




Reply via email to