Jump to content
Excelsior Forums


Excelsior Staff
  • Content count

  • Joined

  • Last visited

Everything posted by zztop

  1. zztop

    No Stack trace

    The third argument of JNI_CreateJavaVM is a C string containing VM options that otherwise can be specified on Java launcher command line. You can pass "-Djet.stack.trace" when creating VM. For code snippets, consult Oracle Java SE documentation (section "JNI_CreateJavaVM".)
  2. Excelsior JET Installation Toolkit does not support this scenario. That's a known problem previously reported by other customers and your voice is counted - we will include the issue in our mid-term plans. For now, you can use the following workaround: Keep this directory (let's name is A) in JetPackII package files but make it empty and use the "Self-contained directory" back-end (this way, xpack will generate a directory containing your app and JET Runtime files.) Copy the necessary files to directory A and wrap the package into a third-party installer such as NSIS or InnoSetup.
  3. zztop

    Stack size in multi-DLL project

    The "genstackalloc" options affects code generation and should be enabled/disabled in the projects files of interest (EXE and DLLs). The "stacklimit" option is, in essence, a run time setting and yes, it's enough to specify it in the EXE's project file.
  4. zztop

    Running Jet tools on Ubuntu

    FYI: 64-bit Excelsior JET for Linux will be out by the end of 2013.
  5. Yes. Yes. Note however that 32-bit and 64-bit Excelsior JET are two different products. The difference is code protection. Using Excelsior JET you deploy optimized native code (hard to reverse engineer) instead of jar and war files with classes. For more details, please refer to the Protect Java Web Applications page.
  6. zztop

    program crashing randomly

    Could you check if the problem appears if the app is compiled with the latest Excelsior JET 8.0?
  7. zztop

    Recover java file

    No, it is not possible and the reasons are described in this article.
  8. zztop


    Does the problem appear on the latest Excelsior JET 7.6?
  9. zztop


    What's the version of Excelsior JET you are using?
  10. zztop

    JETPACKII on win7

    Excelsior JET 4.5 (released in 2006) does not support Windows 7 and we do not recommend to use it on this OS. Even if some applications seem to work I would not rely on it.
  11. zztop

    Resource Files to include

    Does your app work on Oracle JRE as expected if you remove standalone copies of .txt and .png files and keep them only in a .jar?
  12. zztop

    What files to put in version control

    .prj, .jpu, .jpn file should be under version control. .usg, .startup can be re-created. Note that project files (.prj) reference them. Other files are temporary.
  13. I guess you mean Excelsior Installer setup generated by JetPackII as one of possible targets (back-ends). Extra functionality in the installation process can be added with pre-install/post-install DLLs as follows. You write the necessary logic in other language, compile it into DLL(s), add them to the package files and specify those DLLs in JetPackII. As a result, Excelsior Installer will invoke methods from the DLLs during installation and, if necessary, during uninstallation. For more details, please consult this section of the JET User's Guide.
  14. zztop

    Future java 7 support

    Support for Java 7 is our top priority after 64-bit version of Excelsior JET. Dates of particular milestones related to Java 7 will be announced later next month.
  15. zztop

    Some general questions of a newbe...

    No, Java code cannot work without a managed runtime. It is added as a set of DLLs or linked into the executable (if you use the Global Optimizer). If you have compiled your application with Excelsior JET and do not intend to distribute class/jar file, you cannot use Oracle JRE (as it does not work with JET-compiled executables). If you are trying to reduce package size, check the Java Runtime Slim-Down deployment model. You can sign the executables as described in this Knowledge Base article This is because ProGuard (and other obfuscators) cannot cope with dynamic features of Java (Reflection, dynamic loading) - you should manually configure them to select the classes whose names may not be obfuscated. It's required only once when creating project for compilation. Packaging works with the created executable and retrieves all those settings automatically as shown in this video tutorial. We do not have such information.
  16. zztop

    Classic vs. Desktop runtime

    Well, jitter is in the eye of the beholder. Could you prepare a test and scenario that demonstrate the problem, e.g. by reporting fps rate or something like that?
  17. zztop

    Classic vs. Desktop runtime

    From your post I see that enabling the Desktop Runtime fixed the problem. If that's correct, simply use the Desktop Runtime by default because the Classic Runtime works well only for vintage unicore processors.
  18. zztop

    Using Excelsior JET on Linux with LDAP

    Does the problem appear when you run your application on Oracle JRE?
  19. We have investigated this case and found that the result is correct. According to the Java SE Platform specification, an implementation of the Math.pow method must meet the following conditions: The computed result must be within 1 ulp of the exact result. Results must be semi-monotonic. The Excelsior JET's implementation satisfies both requirements for the given case. You can get convinced of that as follows: import java.math.*; public class TestPow { static String dump(String name, double x) { return name + " is: " + x + " [0x" + Long.toHexString(Double.doubleToRawLongBits(x)) + "]"; } static final double center2 = 539.8411439729485; static double expectedPow = 8.49305477211384E10; static double computedPow = Math.pow(center2,4); public static void test(String name, double x) throws Exception { System.out.println(dump(name, x)); System.out.println(dump("pow("+name+",4)", Math.pow(x,4))); } public static void main(String[] args) throws Exception{ System.out.println(dump("Computed value", computedPow)); System.out.println(dump("Expected value", expectedPow)); test("center2", center2); test("nextUp(.)", Math.nextUp(center2)); test("nextDown(.)", Math.nextAfter(center2, center2 - Math.ulp(center2))); BigDecimal bd = new BigDecimal(center2); BigDecimal pw = bd.pow(4); System.out.println(dump("bd.pow(4)", pw.doubleValue()) + " ["+pw+"]"); } } This code produces the following output: Computed value is: 8.493054772113841E10 [0x4233c6415009236f] Expected value is: 8.49305477211384E10 [0x4233c6415009236e] center2 is: 539.8411439729485 [0x4080debaa9b0f855] pow(center2,4) is: 8.493054772113841E10 [0x4233c6415009236f] nextUp(.) is: 539.8411439729487 [0x4080debaa9b0f856] pow(nextUp(.),4) is: 8.493054772113847E10 [0x4233c64150092373] nextDown(.) is: 539.8411439729484 [0x4080debaa9b0f854] pow(nextDown(.),4) is: 8.493054772113834E10 [0x4233c6415009236a] bd.pow(4) is: 8.493054772113841E10 [0x4233c6415009236f] [84930547721.1384061168474255729608117096367050849812000908913459116875846451244938040614330154648031034422639217321791880749071330905091773409189281895947942757629789412021636962890625] Here we see that: Excelsior JET's computed value differs from that of HotSpot only in the least significant bit of mantissa. Excelsior JET's result is semi-monotonic at this point. The exact result (computed via BigDecimal) is between Excelsior JET's and HotSpot's results, so both are within 1 ulp of it. Notice also that Excelsior JET's result is closer to the exact one.
  20. The difference is provoked by Math.pow as can be seen from the following sample: ----------------------- public class TestPow { public static void main(String[] args) { double center2 = 539.8411439729485; double expectedPow = 8.49305477211384E10; double computedPow = Math.pow(center2,4); if (computedPow != expectedPow){ System.out.println("Computed value is: "+ computedPow); System.out.println("Expected value is: "+ expectedPow); } else { System.out.println("value is exact!"); } } ------------------------ We will keep you posted on whether this behavior complies with the Java Language specification.
  21. Thank you for providing this example. We will check it and let you know the results.
  22. zztop

    NullPointerException in String.format

    You may try to write a stress test executing this code fragment in multiple threads on a quad-core box. Please let us know if you manage to reproduce the problem.
  23. zztop

    Calling a compiled DLL from .NET C#

    Have you checked the sample \samples\Invocation\CSharpMain from your installation of Excelsior JET?
  24. Unfortunately, we cannot reason about a program by a code snippet. Can you send us a compilable example (or the entire application) to reproduce the problem on our end? BTW, have you tried to run the application on a quad-core machine with Sun-Oracle JRE and reproduce the issue?
  25. zztop

    NullPointerException in String.format

    Have you tried to reproduce this error on your end?