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 numberlstrcpyn(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, NeilOn Mon, 20 Aug 2018, 08:55 Andreas Hauffe, <andreas.hau...@tu-dresden.de <mailto:andreas.hau...@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.hau...@tu-dresden.de <mailto:andreas.hau...@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
smime.p7s
Description: S/MIME Cryptographic Signature