You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@netbeans.apache.org by Andreas Hauffe <an...@tu-dresden.de> on 2018/08/20 06:10:02 UTC

Bundle JRE 10 to a netbeans platform application

Hi,

I'm trying to bundle a JRE 10.0.2 to a netbeans platform application. 
I'm using the following article 
https://dzone.com/articles/including-jre-in-nbi and change the part of 
creating the zip file of the jre by something like the following lines

jlink --strip-debug --no-header-files --no-man-pages --output 
jre_lin_x64 --module-path ${JRE_PATH}/jmods --add-modules 
java.scripting,java.desktop,java.instrument,java.logging,java.naming,jdk.localedata,jdk.management,jdk.pack,jdk.jdwp.agent 
--include-locales=en,de
zip -9 -r -y ../jre_win_x64.zip .

(The commands vary from linux to windows.)

But when running the installer I'm getting an error that there is no 
jre. And in the logs show:

[2018-08-17 17:21:25.887]> Create new process:
[2018-08-17 17:21:25.887]>           command : 
C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\bin\java.exe 
-classpath C:\Users\ADMINI~1.ILR\AppData\Local\Temp\\NBI60854.tmp TestJDK
[2018-08-17 17:21:25.887]>         directory : C:\Temp
[2018-08-17 17:21:26.180]> ... no java at 
C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm
[2018-08-17 17:21:26.180]> ... check private jre at 
C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\jre
[2018-08-17 17:30:37.086]> No compatible jvm was found on the system

But when looking into the path, there is a JRE and a java.exe and the 
command is running correctly.

Did someone have this working already?

Is there a problem with the version number of Java 10? I'm not used to 
C, but when looking into the getJavaVersionFromString from 
https://github.com/apache/incubator-netbeans/blob/master/nbi/engine/native/launcher/windows/src/JavaUtils.c 
it can be a problem. This is the installer source code, right?

-- 
Regards,
Andreas Hauffe



Re: Bundle JRE 10 to a netbeans platform application

Posted by Andreas Hauffe <an...@tu-dresden.de>.
Hi,

I already did both. See 
https://issues.apache.org/jira/projects/NETBEANS/issues/NETBEANS-1157

The point is, that I don't understand how the zip-files with the 
precompiled native executables and libraries work and where they come 
from, that are used during the netbeans build process. So as long as the 
netbeans 8.2 zip files are used, this bug will not be resolved.

-- 
Regards,
Andreas Hauffe

Am 21.08.2018 um 10:45 schrieb Tushar Joshi:
> This looks like a necessary update for Java10 and shall be submitted 
> as a PR against one issue created for this topic.
> Please think over it.
>
> with regards
>     Tushar
>
>
>
> On Mon, Aug 20, 2018 at 9:11 PM Andreas Hauffe 
> <andreas.hauffe@tu-dresden.de <ma...@tu-dresden.de>> 
> wrote:
>
>     Hi,
>
>     thanks for the hint.
>
>     But I just change the code of the windows installer launcher of
>     netbeans so that it is working for Java 10. This was quite a pain,
>     due the fact, that I do not really understand how the build
>     process during the IDE compilation is working. Some ZIP files are
>     used which override all changes of native executables with
>     netbeans 8.2 executables.
>
>     I changed line 125 - 181 of
>     https://github.com/apache/incubator-netbeans/blob/master/nbi/engine/native/launcher/windows/src/JavaUtils.c
>     to the following and copied the compiled nbi-engine.jar to
>     netbeans/harness/modules/ext/ manually.
>
>     ----
>
>     JavaVersion * getJavaVersionFromString(char * string, DWORD *
>     result) {
>         JavaVersion *vers = NULL;
>         if(getLengthA(string)>=3) {
>             char *p = string;
>
>             // get major
>             long major = 0;
>             while(p!=NULL) {
>                 char c = p[0];
>                 if(c>='0' && c<='9') {
>                     major = (major) * 10 + c - '0';
>                     p++;
>                     continue;
>                 }
>                 else if(c=='.'){
>                     p++;
>                 }
>                 else{
>                     return vers;
>                 }
>                 break;
>             }
>
>             // get minor
>             long minor = 0;
>             while(p!=NULL) {
>                 char c = p[0];
>                 if(c>='0' && c<='9') {
>                     minor = (minor) * 10 + c - '0';
>                     p++;
>                     continue;
>                 }
>                 break;
>             }
>
>             *result = ERROR_OK;
>             vers = (JavaVersion*) LocalAlloc(LPTR, sizeof(JavaVersion));
>             vers->major  = major;
>             vers->minor  = minor;
>             vers->micro  = 0;
>             vers->update = 0;
>             ZERO(vers->build, 128);
>
>             if(p!=NULL) {
>                 if(p[0]=='.') { // micro...
>                     p++;
>                     while(p!=NULL) {
>                         char c = p[0];
>                         if(c>='0' && c<='9') {
>                             vers->micro = (vers->micro) * 10 + c - '0';
>                             p++;
>                             continue;
>                         }
>                         else if(c=='_') {//update
>                             p++;
>                             while(p!=NULL) {
>                                 c = p[0];
>                                 p++;
>                                 if(c>='0' && c<='9') {
>                                     vers->update = (vers->update) * 10
>     + c - '0';
>                                     continue;
>                                 } else {
>                                     break;
>                                 }
>                             }
>                         } else {
>                             if(p!=NULL) p++;
>                         }
>                         if(c=='-' && p!=NULL) { // build number
>                             lstrcpyn(vers->build, p, min(127,
>     getLengthA(p)+1));
>                         }
>                         break;
>                     }
>                 }
>             }
>         }
>         return vers;
>     }
>
>     ----
>
>
>     -- 
>     Regards,
>     Andreas Hauffe
>
>
>
>
>
>     Am 20.08.2018 um 12:23 schrieb Neil C Smith:
>>     You might want to check out the thread around using InnoSetup for
>>     this from around Aug 1st too.
>>
>>     Best wishes,
>>
>>     Neil
>>
>>     On Mon, 20 Aug 2018, 08:55 Andreas Hauffe,
>>     <andreas.hauffe@tu-dresden.de
>>     <ma...@tu-dresden.de>> wrote:
>>
>>         Hi,
>>
>>         I tried with Netbeans 9 and JDK8/JRE8 and this is working.
>>
>>         The verbose output of running the windows installer with a
>>         bundled JRE10 is the following:
>>
>>         2018-08-20 09:48:12.421]> Create new process:
>>         [2018-08-20 09:48:12.421]>           command :
>>         C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm\bin\java.exe
>>         -classpath C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp
>>         TestJDK
>>         [2018-08-20 09:48:12.421]>         directory : C:\Temp
>>         [2018-08-20 09:48:12.437]> ... process created
>>         [2018-08-20 09:48:12.682]> ... process finished his work
>>         [2018-08-20 09:48:12.682]>            output :
>>         10.0.2
>>         10.0.2+13
>>         Oracle Corporation
>>         Windows 10
>>         amd64
>>
>>         [2018-08-20 09:48:12.682]>     java.version = 10.0.2
>>         [2018-08-20 09:48:12.698]>     java.vm.version = 10.0.2+13
>>         [2018-08-20 09:48:12.698]>     java.vendor = Oracle Corporation
>>         [2018-08-20 09:48:12.714]> os.name <http://os.name> = Windows 10
>>         [2018-08-20 09:48:12.714]>     os.arch = amd64
>>         [2018-08-20 09:48:12.714]>
>>         [2018-08-20 09:48:12.729]> ... getting java version from
>>         string : 10.0.2+13
>>         [2018-08-20 09:48:12.729]> ... some java there
>>         [2018-08-20 09:48:12.729]> ... no java at
>>         C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm
>>         [2018-08-20 09:48:12.745]> ... check private jre at
>>         C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm\jre
>>         [2018-08-20 09:48:12.745]> ... not a java hierarchy
>>         [2018-08-20 09:48:12.760]> ... no java was found
>>
>>
>>         -- 
>>         Regards,
>>         Andreas Hauffe
>>
>>
>>
>>         Am 20.08.2018 um 08:13 schrieb Geertjan Wielenga:
>>>         First try to bundle JRE 8. If that works, then try to bundle
>>>         JRE 10. Doing it like this makes it easier to narrow down
>>>         the problem.
>>>
>>>         Gj
>>>
>>>         On Mon, Aug 20, 2018 at 8:10 AM, Andreas Hauffe
>>>         <andreas.hauffe@tu-dresden.de
>>>         <ma...@tu-dresden.de>> wrote:
>>>
>>>             Hi,
>>>
>>>             I'm trying to bundle a JRE 10.0.2 to a netbeans platform
>>>             application. I'm using the following article
>>>             https://dzone.com/articles/including-jre-in-nbi and
>>>             change the part of creating the zip file of the jre by
>>>             something like the following lines
>>>
>>>             jlink --strip-debug --no-header-files --no-man-pages
>>>             --output jre_lin_x64 --module-path ${JRE_PATH}/jmods
>>>             --add-modules
>>>             java.scripting,java.desktop,java.instrument,java.logging,java.naming,jdk.localedata,jdk.management,jdk.pack,jdk.jdwp.agent
>>>             --include-locales=en,de
>>>             zip -9 -r -y ../jre_win_x64.zip .
>>>
>>>             (The commands vary from linux to windows.)
>>>
>>>             But when running the installer I'm getting an error that
>>>             there is no jre. And in the logs show:
>>>
>>>             [2018-08-17 17:21:25.887]> Create new process:
>>>             [2018-08-17 17:21:25.887]> command :
>>>             C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\bin\java.exe
>>>             -classpath
>>>             C:\Users\ADMINI~1.ILR\AppData\Local\Temp\\NBI60854.tmp
>>>             TestJDK
>>>             [2018-08-17 17:21:25.887]> directory : C:\Temp
>>>             [2018-08-17 17:21:26.180]> ... no java at
>>>             C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm
>>>             [2018-08-17 17:21:26.180]> ... check private jre at
>>>             C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\jre
>>>             [2018-08-17 17:30:37.086]> No compatible jvm was found
>>>             on the system
>>>
>>>             But when looking into the path, there is a JRE and a
>>>             java.exe and the command is running correctly.
>>>
>>>             Did someone have this working already?
>>>
>>>             Is there a problem with the version number of Java 10?
>>>             I'm not used to C, but when looking into the
>>>             getJavaVersionFromString from
>>>             https://github.com/apache/incubator-netbeans/blob/master/nbi/engine/native/launcher/windows/src/JavaUtils.c
>>>             it can be a problem. This is the installer source code,
>>>             right?
>>>
>>>             -- 
>>>             Regards,
>>>             Andreas Hauffe
>>>
>>>
>>>

Re: Bundle JRE 10 to a netbeans platform application

Posted by Tushar Joshi <tu...@gmail.com>.
This looks like a necessary update for Java10 and shall be submitted as a
PR against one issue created for this topic.
Please think over it.

with regards
    Tushar



On Mon, Aug 20, 2018 at 9:11 PM Andreas Hauffe <an...@tu-dresden.de>
wrote:

> Hi,
>
> thanks for the hint.
>
> But I just change the code of the windows installer launcher of netbeans
> so that it is working for Java 10. This was quite a pain, due the fact,
> that I do not really understand how the build process during the IDE
> compilation is working. Some ZIP files are used which override all changes
> of native executables with netbeans 8.2 executables.
>
> I changed line 125 - 181 of
> https://github.com/apache/incubator-netbeans/blob/master/nbi/engine/native/launcher/windows/src/JavaUtils.c
> to the following and copied the compiled nbi-engine.jar to
> netbeans/harness/modules/ext/ manually.
>
> ----
>
> JavaVersion * getJavaVersionFromString(char * string, DWORD * result) {
>     JavaVersion *vers = NULL;
>     if(getLengthA(string)>=3) {
>         char *p = string;
>
>         // get major
>         long major = 0;
>         while(p!=NULL) {
>             char c = p[0];
>             if(c>='0' && c<='9') {
>                 major = (major) * 10 + c - '0';
>                 p++;
>                 continue;
>             }
>             else if(c=='.'){
>                 p++;
>             }
>             else{
>                 return vers;
>             }
>             break;
>         }
>
>         // get minor
>         long minor = 0;
>         while(p!=NULL) {
>             char c = p[0];
>             if(c>='0' && c<='9') {
>                 minor = (minor) * 10 + c - '0';
>                 p++;
>                 continue;
>             }
>             break;
>         }
>
>         *result = ERROR_OK;
>         vers = (JavaVersion*) LocalAlloc(LPTR, sizeof(JavaVersion));
>         vers->major  = major;
>         vers->minor  = minor;
>         vers->micro  = 0;
>         vers->update = 0;
>         ZERO(vers->build, 128);
>
>         if(p!=NULL) {
>             if(p[0]=='.') { // micro...
>                 p++;
>                 while(p!=NULL) {
>                     char c = p[0];
>                     if(c>='0' && c<='9') {
>                         vers->micro = (vers->micro) * 10 + c - '0';
>                         p++;
>                         continue;
>                     }
>                     else if(c=='_') {//update
>                         p++;
>                         while(p!=NULL) {
>                             c = p[0];
>                             p++;
>                             if(c>='0' && c<='9') {
>                                 vers->update = (vers->update) * 10 + c -
> '0';
>                                 continue;
>                             } else {
>                                 break;
>                             }
>                         }
>                     } else {
>                         if(p!=NULL) p++;
>                     }
>                     if(c=='-' && p!=NULL) { // build number
>                         lstrcpyn(vers->build, p, min(127,
> getLengthA(p)+1));
>                     }
>                     break;
>                 }
>             }
>         }
>     }
>     return vers;
> }
>
> ----
>
> --
> Regards,
> Andreas Hauffe
>
>
>
>
>
>
> Am 20.08.2018 um 12:23 schrieb Neil C Smith:
>
> You might want to check out the thread around using InnoSetup for this
> from around Aug 1st too.
>
> Best wishes,
>
> Neil
>
> On Mon, 20 Aug 2018, 08:55 Andreas Hauffe, <an...@tu-dresden.de>
> wrote:
>
>> Hi,
>>
>> I tried with Netbeans 9 and JDK8/JRE8 and this is working.
>>
>> The verbose output of running the windows installer with a bundled JRE10
>> is the following:
>>
>> 2018-08-20 09:48:12.421]> Create new process:
>> [2018-08-20 09:48:12.421]>           command :
>> C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm\bin\java.exe
>> -classpath C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp TestJDK
>> [2018-08-20 09:48:12.421]>         directory : C:\Temp
>> [2018-08-20 09:48:12.437]> ... process created
>> [2018-08-20 09:48:12.682]> ... process finished his work
>> [2018-08-20 09:48:12.682]>            output :
>> 10.0.2
>> 10.0.2+13
>> Oracle Corporation
>> Windows 10
>> amd64
>>
>> [2018-08-20 09:48:12.682]>     java.version =  10.0.2
>> [2018-08-20 09:48:12.698]>     java.vm.version = 10.0.2+13
>> [2018-08-20 09:48:12.698]>     java.vendor = Oracle Corporation
>> [2018-08-20 09:48:12.714]>     os.name = Windows 10
>> [2018-08-20 09:48:12.714]>     os.arch = amd64
>> [2018-08-20 09:48:12.714]>
>> [2018-08-20 09:48:12.729]> ... getting java version from string :
>> 10.0.2+13
>> [2018-08-20 09:48:12.729]> ... some java there
>> [2018-08-20 09:48:12.729]> ... no java at
>> C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm
>> [2018-08-20 09:48:12.745]> ... check private jre at
>> C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm\jre
>> [2018-08-20 09:48:12.745]> ... not a java hierarchy
>> [2018-08-20 09:48:12.760]> ... no java was found
>>
>> --
>> Regards,
>> Andreas Hauffe
>>
>>
>>
>> Am 20.08.2018 um 08:13 schrieb Geertjan Wielenga:
>>
>> First try to bundle JRE 8. If that works, then try to bundle JRE 10.
>> Doing it like this makes it easier to narrow down the problem.
>>
>> Gj
>>
>> On Mon, Aug 20, 2018 at 8:10 AM, Andreas Hauffe <
>> andreas.hauffe@tu-dresden.de> wrote:
>>
>>> Hi,
>>>
>>> I'm trying to bundle a JRE 10.0.2 to a netbeans platform application.
>>> I'm using the following article
>>> https://dzone.com/articles/including-jre-in-nbi and change the part of
>>> creating the zip file of the jre by something like the following lines
>>>
>>> jlink --strip-debug --no-header-files --no-man-pages --output
>>> jre_lin_x64 --module-path ${JRE_PATH}/jmods --add-modules
>>> java.scripting,java.desktop,java.instrument,java.logging,java.naming,jdk.localedata,jdk.management,jdk.pack,jdk.jdwp.agent
>>> --include-locales=en,de
>>> zip -9 -r -y ../jre_win_x64.zip .
>>>
>>> (The commands vary from linux to windows.)
>>>
>>> But when running the installer I'm getting an error that there is no
>>> jre. And in the logs show:
>>>
>>> [2018-08-17 17:21:25.887]> Create new process:
>>> [2018-08-17 17:21:25.887]>           command :
>>> C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\bin\java.exe
>>> -classpath C:\Users\ADMINI~1.ILR\AppData\Local\Temp\\NBI60854.tmp TestJDK
>>> [2018-08-17 17:21:25.887]>         directory : C:\Temp
>>> [2018-08-17 17:21:26.180]> ... no java at
>>> C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm
>>> [2018-08-17 17:21:26.180]> ... check private jre at
>>> C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\jre
>>> [2018-08-17 17:30:37.086]> No compatible jvm was found on the system
>>>
>>> But when looking into the path, there is a JRE and a java.exe and the
>>> command is running correctly.
>>>
>>> Did someone have this working already?
>>>
>>> Is there a problem with the version number of Java 10? I'm not used to
>>> C, but when looking into the getJavaVersionFromString from
>>> https://github.com/apache/incubator-netbeans/blob/master/nbi/engine/native/launcher/windows/src/JavaUtils.c
>>> it can be a problem. This is the installer source code, right?
>>>
>>> --
>>> Regards,
>>> Andreas Hauffe
>>>
>>>
>>>
>>

Re: Bundle JRE 10 to a netbeans platform application

Posted by Andreas Hauffe <an...@tu-dresden.de>.
Hi,

thanks for the hint.

But I just change the code of the windows installer launcher of netbeans 
so that it is working for Java 10. This was quite a pain, due the fact, 
that I do not really understand how the build process during the IDE 
compilation is working. Some ZIP files are used which override all 
changes of native executables with netbeans 8.2 executables.

I changed line 125 - 181 of 
https://github.com/apache/incubator-netbeans/blob/master/nbi/engine/native/launcher/windows/src/JavaUtils.c 
to the following and copied the compiled nbi-engine.jar to 
netbeans/harness/modules/ext/ manually.

----

JavaVersion * getJavaVersionFromString(char * string, DWORD * result) {
     JavaVersion *vers = NULL;
     if(getLengthA(string)>=3) {
         char *p = string;

         // get major
         long major = 0;
         while(p!=NULL) {
             char c = p[0];
             if(c>='0' && c<='9') {
                 major = (major) * 10 + c - '0';
                 p++;
                 continue;
             }
             else if(c=='.'){
                 p++;
             }
             else{
                 return vers;
             }
             break;
         }

         // get minor
         long minor = 0;
         while(p!=NULL) {
             char c = p[0];
             if(c>='0' && c<='9') {
                 minor = (minor) * 10 + c - '0';
                 p++;
                 continue;
             }
             break;
         }

         *result = ERROR_OK;
         vers = (JavaVersion*) LocalAlloc(LPTR, sizeof(JavaVersion));
         vers->major  = major;
         vers->minor  = minor;
         vers->micro  = 0;
         vers->update = 0;
         ZERO(vers->build, 128);

         if(p!=NULL) {
             if(p[0]=='.') { // micro...
                 p++;
                 while(p!=NULL) {
                     char c = p[0];
                     if(c>='0' && c<='9') {
                         vers->micro = (vers->micro) * 10 + c - '0';
                         p++;
                         continue;
                     }
                     else if(c=='_') {//update
                         p++;
                         while(p!=NULL) {
                             c = p[0];
                             p++;
                             if(c>='0' && c<='9') {
                                 vers->update = (vers->update) * 10 + c 
- '0';
                                 continue;
                             } else {
                                 break;
                             }
                         }
                     } else {
                         if(p!=NULL) p++;
                     }
                     if(c=='-' && p!=NULL) { // build number
                         lstrcpyn(vers->build, p, min(127, 
getLengthA(p)+1));
                     }
                     break;
                 }
             }
         }
     }
     return vers;
}

----


-- 
Regards,
Andreas Hauffe





Am 20.08.2018 um 12:23 schrieb Neil C Smith:
> You might want to check out the thread around using InnoSetup for this 
> from around Aug 1st too.
>
> Best wishes,
>
> Neil
>
> On Mon, 20 Aug 2018, 08:55 Andreas Hauffe, 
> <andreas.hauffe@tu-dresden.de <ma...@tu-dresden.de>> 
> wrote:
>
>     Hi,
>
>     I tried with Netbeans 9 and JDK8/JRE8 and this is working.
>
>     The verbose output of running the windows installer with a bundled
>     JRE10 is the following:
>
>     2018-08-20 09:48:12.421]> Create new process:
>     [2018-08-20 09:48:12.421]>           command :
>     C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm\bin\java.exe
>     -classpath C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp TestJDK
>     [2018-08-20 09:48:12.421]>         directory : C:\Temp
>     [2018-08-20 09:48:12.437]> ... process created
>     [2018-08-20 09:48:12.682]> ... process finished his work
>     [2018-08-20 09:48:12.682]>            output :
>     10.0.2
>     10.0.2+13
>     Oracle Corporation
>     Windows 10
>     amd64
>
>     [2018-08-20 09:48:12.682]>     java.version =  10.0.2
>     [2018-08-20 09:48:12.698]>     java.vm.version = 10.0.2+13
>     [2018-08-20 09:48:12.698]>     java.vendor = Oracle Corporation
>     [2018-08-20 09:48:12.714]> os.name <http://os.name> = Windows 10
>     [2018-08-20 09:48:12.714]>     os.arch = amd64
>     [2018-08-20 09:48:12.714]>
>     [2018-08-20 09:48:12.729]> ... getting java version from string :
>     10.0.2+13
>     [2018-08-20 09:48:12.729]> ... some java there
>     [2018-08-20 09:48:12.729]> ... no java at
>     C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm
>     [2018-08-20 09:48:12.745]> ... check private jre at
>     C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm\jre
>     [2018-08-20 09:48:12.745]> ... not a java hierarchy
>     [2018-08-20 09:48:12.760]> ... no java was found
>
>
>     -- 
>     Regards,
>     Andreas Hauffe
>
>
>
>     Am 20.08.2018 um 08:13 schrieb Geertjan Wielenga:
>>     First try to bundle JRE 8. If that works, then try to bundle JRE
>>     10. Doing it like this makes it easier to narrow down the problem.
>>
>>     Gj
>>
>>     On Mon, Aug 20, 2018 at 8:10 AM, Andreas Hauffe
>>     <andreas.hauffe@tu-dresden.de
>>     <ma...@tu-dresden.de>> wrote:
>>
>>         Hi,
>>
>>         I'm trying to bundle a JRE 10.0.2 to a netbeans platform
>>         application. I'm using the following article
>>         https://dzone.com/articles/including-jre-in-nbi and change
>>         the part of creating the zip file of the jre by something
>>         like the following lines
>>
>>         jlink --strip-debug --no-header-files --no-man-pages --output
>>         jre_lin_x64 --module-path ${JRE_PATH}/jmods --add-modules
>>         java.scripting,java.desktop,java.instrument,java.logging,java.naming,jdk.localedata,jdk.management,jdk.pack,jdk.jdwp.agent
>>         --include-locales=en,de
>>         zip -9 -r -y ../jre_win_x64.zip .
>>
>>         (The commands vary from linux to windows.)
>>
>>         But when running the installer I'm getting an error that
>>         there is no jre. And in the logs show:
>>
>>         [2018-08-17 17:21:25.887]> Create new process:
>>         [2018-08-17 17:21:25.887]>           command :
>>         C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\bin\java.exe
>>         -classpath
>>         C:\Users\ADMINI~1.ILR\AppData\Local\Temp\\NBI60854.tmp TestJDK
>>         [2018-08-17 17:21:25.887]>         directory : C:\Temp
>>         [2018-08-17 17:21:26.180]> ... no java at
>>         C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm
>>         [2018-08-17 17:21:26.180]> ... check private jre at
>>         C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\jre
>>         [2018-08-17 17:30:37.086]> No compatible jvm was found on the
>>         system
>>
>>         But when looking into the path, there is a JRE and a java.exe
>>         and the command is running correctly.
>>
>>         Did someone have this working already?
>>
>>         Is there a problem with the version number of Java 10? I'm
>>         not used to C, but when looking into the
>>         getJavaVersionFromString from
>>         https://github.com/apache/incubator-netbeans/blob/master/nbi/engine/native/launcher/windows/src/JavaUtils.c
>>         it can be a problem. This is the installer source code, right?
>>
>>         -- 
>>         Regards,
>>         Andreas Hauffe
>>
>>
>>

Re: Bundle JRE 10 to a netbeans platform application

Posted by Neil C Smith <ne...@apache.org>.
You might want to check out the thread around using InnoSetup for this from
around Aug 1st too.

Best wishes,

Neil

On Mon, 20 Aug 2018, 08:55 Andreas Hauffe, <an...@tu-dresden.de>
wrote:

> Hi,
>
> I tried with Netbeans 9 and JDK8/JRE8 and this is working.
>
> The verbose output of running the windows installer with a bundled JRE10
> is the following:
>
> 2018-08-20 09:48:12.421]> Create new process:
> [2018-08-20 09:48:12.421]>           command :
> C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm\bin\java.exe
> -classpath C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp TestJDK
> [2018-08-20 09:48:12.421]>         directory : C:\Temp
> [2018-08-20 09:48:12.437]> ... process created
> [2018-08-20 09:48:12.682]> ... process finished his work
> [2018-08-20 09:48:12.682]>            output :
> 10.0.2
> 10.0.2+13
> Oracle Corporation
> Windows 10
> amd64
>
> [2018-08-20 09:48:12.682]>     java.version =  10.0.2
> [2018-08-20 09:48:12.698]>     java.vm.version = 10.0.2+13
> [2018-08-20 09:48:12.698]>     java.vendor = Oracle Corporation
> [2018-08-20 09:48:12.714]>     os.name = Windows 10
> [2018-08-20 09:48:12.714]>     os.arch = amd64
> [2018-08-20 09:48:12.714]>
> [2018-08-20 09:48:12.729]> ... getting java version from string : 10.0.2+13
> [2018-08-20 09:48:12.729]> ... some java there
> [2018-08-20 09:48:12.729]> ... no java at
> C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm
> [2018-08-20 09:48:12.745]> ... check private jre at
> C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm\jre
> [2018-08-20 09:48:12.745]> ... not a java hierarchy
> [2018-08-20 09:48:12.760]> ... no java was found
>
> --
> Regards,
> Andreas Hauffe
>
>
>
> Am 20.08.2018 um 08:13 schrieb Geertjan Wielenga:
>
> First try to bundle JRE 8. If that works, then try to bundle JRE 10. Doing
> it like this makes it easier to narrow down the problem.
>
> Gj
>
> On Mon, Aug 20, 2018 at 8:10 AM, Andreas Hauffe <
> andreas.hauffe@tu-dresden.de> wrote:
>
>> Hi,
>>
>> I'm trying to bundle a JRE 10.0.2 to a netbeans platform application. I'm
>> using the following article
>> https://dzone.com/articles/including-jre-in-nbi and change the part of
>> creating the zip file of the jre by something like the following lines
>>
>> jlink --strip-debug --no-header-files --no-man-pages --output jre_lin_x64
>> --module-path ${JRE_PATH}/jmods --add-modules
>> java.scripting,java.desktop,java.instrument,java.logging,java.naming,jdk.localedata,jdk.management,jdk.pack,jdk.jdwp.agent
>> --include-locales=en,de
>> zip -9 -r -y ../jre_win_x64.zip .
>>
>> (The commands vary from linux to windows.)
>>
>> But when running the installer I'm getting an error that there is no jre.
>> And in the logs show:
>>
>> [2018-08-17 17:21:25.887]> Create new process:
>> [2018-08-17 17:21:25.887]>           command :
>> C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\bin\java.exe
>> -classpath C:\Users\ADMINI~1.ILR\AppData\Local\Temp\\NBI60854.tmp TestJDK
>> [2018-08-17 17:21:25.887]>         directory : C:\Temp
>> [2018-08-17 17:21:26.180]> ... no java at
>> C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm
>> [2018-08-17 17:21:26.180]> ... check private jre at
>> C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\jre
>> [2018-08-17 17:30:37.086]> No compatible jvm was found on the system
>>
>> But when looking into the path, there is a JRE and a java.exe and the
>> command is running correctly.
>>
>> Did someone have this working already?
>>
>> Is there a problem with the version number of Java 10? I'm not used to C,
>> but when looking into the getJavaVersionFromString from
>> https://github.com/apache/incubator-netbeans/blob/master/nbi/engine/native/launcher/windows/src/JavaUtils.c
>> it can be a problem. This is the installer source code, right?
>>
>> --
>> Regards,
>> Andreas Hauffe
>>
>>
>>
>

Re: Bundle JRE 10 to a netbeans platform application

Posted by Andreas Hauffe <an...@tu-dresden.de>.
Hi,

I tried with Netbeans 9 and JDK8/JRE8 and this is working.

The verbose output of running the windows installer with a bundled JRE10 
is the following:

2018-08-20 09:48:12.421]> Create new process:
[2018-08-20 09:48:12.421]>           command : 
C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm\bin\java.exe 
-classpath C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp TestJDK
[2018-08-20 09:48:12.421]>         directory : C:\Temp
[2018-08-20 09:48:12.437]> ... process created
[2018-08-20 09:48:12.682]> ... process finished his work
[2018-08-20 09:48:12.682]>            output :
10.0.2
10.0.2+13
Oracle Corporation
Windows 10
amd64

[2018-08-20 09:48:12.682]>     java.version =  10.0.2
[2018-08-20 09:48:12.698]>     java.vm.version = 10.0.2+13
[2018-08-20 09:48:12.698]>     java.vendor = Oracle Corporation
[2018-08-20 09:48:12.714]>     os.name = Windows 10
[2018-08-20 09:48:12.714]>     os.arch = amd64
[2018-08-20 09:48:12.714]>
[2018-08-20 09:48:12.729]> ... getting java version from string : 10.0.2+13
[2018-08-20 09:48:12.729]> ... some java there
[2018-08-20 09:48:12.729]> ... no java at 
C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm
[2018-08-20 09:48:12.745]> ... check private jre at 
C:\Users\${USER}\AppData\Local\Temp\\NBI25406.tmp\_jvm\jre
[2018-08-20 09:48:12.745]> ... not a java hierarchy
[2018-08-20 09:48:12.760]> ... no java was found


-- 
Regards,
Andreas Hauffe



Am 20.08.2018 um 08:13 schrieb Geertjan Wielenga:
> First try to bundle JRE 8. If that works, then try to bundle JRE 10. 
> Doing it like this makes it easier to narrow down the problem.
>
> Gj
>
> On Mon, Aug 20, 2018 at 8:10 AM, Andreas Hauffe 
> <andreas.hauffe@tu-dresden.de <ma...@tu-dresden.de>> 
> wrote:
>
>     Hi,
>
>     I'm trying to bundle a JRE 10.0.2 to a netbeans platform
>     application. I'm using the following article
>     https://dzone.com/articles/including-jre-in-nbi
>     <https://dzone.com/articles/including-jre-in-nbi> and change the
>     part of creating the zip file of the jre by something like the
>     following lines
>
>     jlink --strip-debug --no-header-files --no-man-pages --output
>     jre_lin_x64 --module-path ${JRE_PATH}/jmods --add-modules
>     java.scripting,java.desktop,java.instrument,java.logging,java.naming,jdk.localedata,jdk.management,jdk.pack,jdk.jdwp.agent
>     --include-locales=en,de
>     zip -9 -r -y ../jre_win_x64.zip .
>
>     (The commands vary from linux to windows.)
>
>     But when running the installer I'm getting an error that there is
>     no jre. And in the logs show:
>
>     [2018-08-17 17:21:25.887]> Create new process:
>     [2018-08-17 17:21:25.887]>           command :
>     C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\bin\java.exe
>     -classpath C:\Users\ADMINI~1.ILR\AppData\Local\Temp\\NBI60854.tmp
>     TestJDK
>     [2018-08-17 17:21:25.887]>         directory : C:\Temp
>     [2018-08-17 17:21:26.180]> ... no java at
>     C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm
>     [2018-08-17 17:21:26.180]> ... check private jre at
>     C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\jre
>     [2018-08-17 17:30:37.086]> No compatible jvm was found on the system
>
>     But when looking into the path, there is a JRE and a java.exe and
>     the command is running correctly.
>
>     Did someone have this working already?
>
>     Is there a problem with the version number of Java 10? I'm not
>     used to C, but when looking into the getJavaVersionFromString from
>     https://github.com/apache/incubator-netbeans/blob/master/nbi/engine/native/launcher/windows/src/JavaUtils.c
>     <https://github.com/apache/incubator-netbeans/blob/master/nbi/engine/native/launcher/windows/src/JavaUtils.c>
>     it can be a problem. This is the installer source code, right?
>
>     -- 
>     Regards,
>     Andreas Hauffe
>
>
>

Re: Bundle JRE 10 to a netbeans platform application

Posted by Geertjan Wielenga <ge...@googlemail.com.INVALID>.
First try to bundle JRE 8. If that works, then try to bundle JRE 10. Doing
it like this makes it easier to narrow down the problem.

Gj

On Mon, Aug 20, 2018 at 8:10 AM, Andreas Hauffe <
andreas.hauffe@tu-dresden.de> wrote:

> Hi,
>
> I'm trying to bundle a JRE 10.0.2 to a netbeans platform application. I'm
> using the following article https://dzone.com/articles/inc
> luding-jre-in-nbi and change the part of creating the zip file of the jre
> by something like the following lines
>
> jlink --strip-debug --no-header-files --no-man-pages --output jre_lin_x64
> --module-path ${JRE_PATH}/jmods --add-modules java.scripting,java.desktop,ja
> va.instrument,java.logging,java.naming,jdk.localedata,jdk.
> management,jdk.pack,jdk.jdwp.agent --include-locales=en,de
> zip -9 -r -y ../jre_win_x64.zip .
>
> (The commands vary from linux to windows.)
>
> But when running the installer I'm getting an error that there is no jre.
> And in the logs show:
>
> [2018-08-17 17:21:25.887]> Create new process:
> [2018-08-17 17:21:25.887]>           command :
> C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\bin\java.exe
> -classpath C:\Users\ADMINI~1.ILR\AppData\Local\Temp\\NBI60854.tmp TestJDK
> [2018-08-17 17:21:25.887]>         directory : C:\Temp
> [2018-08-17 17:21:26.180]> ... no java at C:\Users\${USER}\AppData\Local
> \Temp\\NBI60854.tmp\_jvm
> [2018-08-17 17:21:26.180]> ... check private jre at
> C:\Users\${USER}\AppData\Local\Temp\\NBI60854.tmp\_jvm\jre
> [2018-08-17 17:30:37.086]> No compatible jvm was found on the system
>
> But when looking into the path, there is a JRE and a java.exe and the
> command is running correctly.
>
> Did someone have this working already?
>
> Is there a problem with the version number of Java 10? I'm not used to C,
> but when looking into the getJavaVersionFromString from
> https://github.com/apache/incubator-netbeans/blob/master/
> nbi/engine/native/launcher/windows/src/JavaUtils.c it can be a problem.
> This is the installer source code, right?
>
> --
> Regards,
> Andreas Hauffe
>
>
>