Jump to content
Excelsior Forums


Excelsior Staff
  • Content count

  • Joined

  • Last visited

Everything posted by zztop

  1. 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.
  2. 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?
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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?
  8. 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.
  9. Using Excelsior JET on Linux with LDAP

    Does the problem appear when you run your application on Oracle JRE?
  10. 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.
  11. 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.
  12. Thank you for providing this example. We will check it and let you know the results.
  13. 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.
  14. Calling a compiled DLL from .NET C#

    Have you checked the sample \samples\Invocation\CSharpMain from your installation of Excelsior JET?
  15. 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?
  16. NullPointerException in String.format

    Have you tried to reproduce this error on your end?
  17. 64 bit JET

    From today, we start publishing a series of "Excelsior JET for 64-bit platforms" internal news digests on monthly basis under this blog category.
  18. 64-bit Support

    From today, we start publishing a series of "Excelsior JET for 64-bit platforms" internal news digests on monthly basis under this blog category.
  19. 64-bit Support

    Excelsior Java Team is now devoted to development of the 64-bit port. We will start publishing info 'bout the progress next month.
  20. The new collection holds popular Java applications compiled and packaged with Excelsior JET. You will not see any kind of ?Do Not Touch? signs there: all applications are freely available for download.
  21. Excelsior JET 7.2 ships

    The latest Excelsior JET 7.2 is immediately available for evaluation and purchase! The major new feature included in this release is the Startup Optimization Toolkit that enables you to substantially imrove startup time of your Java applications. The full list of improvements in version 7.2 is available on the what's new page.
  22. Excelsior JET customer: Improved performance of Java code compiled with Excelsior JET caused a bug lurking in a client-server application to manifest itself... Continued in this Excelsior's blog post.
  23. Each released version of Excelsior JET passes the Java Compatibility Kit (JCK) test suite. This guarantees that all features of the Java programming language and Java SE platform are implemented in compliance with the specification. However, certain applications exploit Java features not enforced by the specification. Such applications may fail to run on the JET Runtime, and probably on some other JVMs too. The list of the known implementation differences between Excelsior JET and the HotSpot JVM is given in this Knowledge Base article.
  24. Recently we have started receiving complaints from Excelsior JET evaluation users about virus detection in certain binaries included with Excelsior JET. A quick check has shown that it's false positive detection and we've got it confirmed by the vendors of the anti-virus systems. Thanks to all who informed us about this problem.
  25. On Linux, the lookup of Java native libraries also uses $LD_LIBRARY_PATH. Seemingly, the env. var setting on your computer includes the respective directories.