Jump to content
Excelsior Forums


  • Content count

  • Joined

  • Last visited

Community Reputation

1 Neutral

About xcr

  • Rank
    Excelsior Technician

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. xcr

    Startup time

    Hello, Yes, splitting an application into multiple components may reduce startup time due to loading the libraries. Also it may significantly reduce the effect of using the Startup Optimization Toolkit included with Excelsior JET. For more details, please see "Startup time optimization" chapter of the documentation. Best Regards, Svyatoslav
  2. xcr

    program crashing randomly

    Does the crash occurs on the same PC every time? If so, is there any differences in OS configurations of PCs? Which version of JET do you use? Does anything appear in dmesg output or syslog when the crash occurs?
  3. xcr

    program crashing randomly

    Hi, Do any files appear in compiled application directory? When JET crashes, it should create a crash log file with name jet_err_N.txt, where N is a number. Please look for jet_err_*.txt files in application directory.
  4. xcr

    Deployment issue on Linux

    Hi, Could you please show your LD_LIBRARY_PATH value? (run echo $LD_LIBRARY_PATH in console) Also, please enable full stack trace support at page "Target" of JET Control Panel, re-compile, re-pack and re-install your application. Then please run it again and post a stack trace here.
  5. xcr

    .exe doesnt work on another computer

    Hi, To make created .exe work on another computer please use JetPackII (it is included into JET distribution). With JetPackII you can create either installation package or self-contained directory. To get more information please find the documentation here: http://www.excelsior-usa.com/doc/jet/jetw007.html
  6. SA_RESTART flag itself does not make the application to misbehave, it actually helps to cut off possible problems caused by wrong handling of EINTR. The application misbehaves due to wrong handling of interruption. With disabled SA_RESTART flag the write issue can not disappear. But some new issues may pop up. Please try to stress test thread executing this native code with Thread.suspend()/resume().
  7. What do you mean by "resistance to SA_RESTART flag"?
  8. It is actually not a defect. The location of Special Windows Folders (like the Application Data, My Documents etc.) depends on installation type: Common or Personal. Special folder "Application Data", it is resolved by "CSIDL_APPDATA" or "CSIDL_COMMON_APPDATA" depending on installation type. CSIDL_APPDATA - The file system directory that serves as a common repository for application-specific data. A typical path is C:\Documents and Settings\username\Application Data. CSIDL_COMMON_APPDATA - The file system directory that contains application data for all users. A typical path is C:\Documents and Settings\All Users\Application Data. This folder is used for application data that is not user specific. You can select which type of installation better suits your needs from the "Installation type" combo box which is located on the page "Settings", tab "Install". The following options are available: Auto-detect - if the logged user has required administrative rights, the application will be installed as "Common" and will be available for all the users of that machine. Otherwise the application will be installed as "Personal" and will be available only for the user that installed it. User decide - if the user has administrative rights he will be prompted to select installation type. Otherwise, the application will be installed as "Personal". Common - the application will be available for all the users of that machine. If the logged user is not a member of the "Administrators" user group, he will be notified that administrative privileges are required to install the application. Personal - the application will be available only for the user that installed it. It is supposed that the installation does not require administrative privileges. So if you want your application to be installed to user's application data, please choose "Personal".
  9. Please start with section "Interruption of system calls and library functions by signal handlers" at http://man7.org/linux/man-pages/man7/signal.7.html Note that we use SA_RESTART flag. The assumption that a system call from a native library will never be interrupted is wrong. It is not enforced by the Java specification, so using a system call without checking if it was interrupted is a bug. Even having the source code of Excelsior JET you can't do anything to reliably work around this bug in the library if you don't have its source code. So the only recommendation is to contact the authors of the library and ask them to fix it, because it is much easier to fix a library than to re-implement threading in VM.
  10. Implementation of threading in Excelsior JET VM differs from that of Oracle JVM. Although we use signal handling in our implementation for Linux, it still complies with the Java specification, which is also confirmed by the fact that Excelsior JET passes JCK. On the other hand, the behavior of write call when it writes only a part of data is expected and described in its documentation. Sometimes it happens that an application or native library works on Oracle JVM but does not work on Excelsior JET (and some other VMs too) due to relying on implementation features not enforced by the Java specification. You may find other examples of such problems in the pinned topics of "Defect Reports" on the forum.
  11. Thanks for your investigation! We have already reproduced the issue. In Linux version of Excelsior JET VM we do use signals for some internal purposes, and these signals may interrupt write calls producing the issue described in your post. A more detailed explanation will follow soon, please stay tuned.
  12. Hi, Could you please give us more information? 1) Which GNU/Linux distribution do you use? Is it 64-bit? 2) Which version of JET do you use? Have you installed any updates? 3) Which version of Sun JVM do you use? 4) Do you have any sample application to reproduce the issue? Best regards, Svyatoslav Scherbina.
  13. xcr

    Question about classpath in JET

    You are welcome! Also, this method requires to create a batch script, so it may be inconvenient. Here are the alternatives: 1) You can build your application with fake empty audio.zip file, opting not to pack it in executable in JET Control Panel, then add it to the installation package on "Resources" page of JetPack II. So it will be included to the classpath. After installation the fake empty archive can be replaced by the real one. 2) You can create multi-app executable by choosing the corresponding option on the "Target" page of JET Control Panel. This executable may take "java.class.path" property from its arguments. So then in JetPack II you can choose corresponding application shortcut on tab "Shortcuts" on page "Misc" and specify application classpath by adding "-Djava.class.path=<classpath>" to its arguments.
  14. xcr

    Question about classpath in JET

    Then you can do this by explicitly specifying classpath for deployed application before launching it by using environment variable JETVMPROP. You should add "-Djava.class.path=<classpath>" to it, where <classpath> should be replaced by classpath which your deployed application uses including path to audio.zip. For example: set JETVMPROP="-Djava.class.path=.\resources\audio.zip" App.exe Please try to do this and let us know if it helps.
  15. xcr

    Question about classpath in JET

    Hello, Please try to remove the classpath directive for audio.zip from your project, then build and deploy the application. If you then simply put the file to the same directory where deployed application executable is located, the application should find it. Please let us know the results.