B4J Question Publishing To Windows Store Problems

Discussion in 'B4J Questions' started by keirS, May 9, 2019.

  1. keirS

    keirS Well-Known Member Licensed User

    I tried to use the store packager tool to publish to the windows store but the builder use does not support JPOI. So I built the package manually using the B4JPackerger11 and MS Desktop Packager Tool. I can create the APPX package OK and it will install but it doesn't run.

    Running process monitor it appears that Java is run but it is looking in the wrong place for the release_java_modules.txt

    Code:
    High Resolution Date & Time:    09/05/2019 10:26:49.8739609
    Event Class:    File System
    Operation:    QueryDirectory
    Result:    NO SUCH 
    FILE
    Path:    C:\Windows\System32\release_java_modules.txt
    TID:    
    3224
    Duration:    
    0.0000225
    Filter:    release_java_modules.txt
    I think it maybe running Java from the wrong place as well since it is showing access to:

    Code:
    High Resolution Date & Time:    09/05/2019 10:26:49.8063438
    Event Class:    File System
    Operation:    CreateFile
    Result:    SUCCESS
    Path:    C:\ProgramData\Oracle\Java\javapath
    TID:    
    14216
    Duration:    
    0.0000892
    Desired Access:    Read 
    Attributes
    Disposition:    Open
    Options:    Open Reparse 
    Point
    Attributes:    n/a
    ShareMode:    Read, Write, Delete
    AllocationSize:    n/a
    OpenResult:    Opened
    C:\ProgramData\Oracle\Java\javapath is the entry in my command line path.
     
    Last edited: May 9, 2019
  2. keirS

    keirS Well-Known Member Licensed User

    Solving my own problem. I changed the C# code in B4JPackeger11 to:

    Code:
    File.WriteString(TempFolder, "runner.cs"$"
      
    using System;
    using System.Diagnostics;
    namespace B4JRunner
    {
        class Program
        {
            static void Main(string[] args)
            {
                  
                string StartDir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
                Process p = new Process();  
                p.StartInfo.FileName = "javaw.exe";
                if (StartDir.Length > 0)
                {
                    p.StartInfo.WorkingDirectory = StartDir + @"\bin";
                }
                else
                {
                    p.StartInfo.WorkingDirectory = @"bin";
                }
              
                p.StartInfo.Arguments = "@release_java_modules.txt -m ${
    TargetModule}/${PackageName}.main";
                p.Start();
            }
        }
    }"$
    )
    According to this Stack Overflow post that's the best way to get the start location for APPX installation. This returns an empty string when run straight from windows so I just kept the current WorkingDirectory setting if StartDir is zero length. There is probably a better way of doing it but it works.
     
    Erel likes this.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice