Jump to content
Excelsior Forums
Sign in to follow this  
FrankZado

Jet Pro 3.60 MP3 / Java 1.4.2_06 support?

Recommended Posts

Finally get my program working in VC++ with the JET compiled DLL, and then they go and change everything on me!

The program I'm supposed to be encapsulating into a DLL with JET was modified, and one of the results of that modification was that they shifted from j2sdk1.4.2 to j2sdk1.4.2_06. This predicated updating my copy of Jet Pro3.60  with Maintenance Pack 3, as that is explicity required to support 1.4.2_06. The update seemed to work fine, as did the compiling of the 1.4.2_06 platform classes. I recompiled the java code with 1.4.2_06, recreated the DLL file with it, and all that worked fine. The problem is when I try to run my main C++ application.

The program sets up the variables fine, the call:

JNI_GetDefaultJavaVMInitArgs_func(&vm_args)

works fine as well. But the moment the code hits the function:

JNI_CreateJavaVM_func(&jvm, (void **)&jenvHandle, &vm_args);

It exits, stating:

JET is not properly installed on your system

If you port JET-compiled executables to another machine,

please use JetPack (see JET User's Guide, "Deployment automation")

Runtime error #3(trap) in JET

For the life of me I can not figure out what is going on. If I set j2sdk1.4.2 active in JET Setup, recompile the java, rebuild the DLL, and run the C++ program it works perfectly. The moment I switch it to 1.4.2_06, it bombs.

Does anyone know why this might be, or if there are any issues with MP3 as related to either JNI implementation or 1.4.2_06 support? Thanks!

Share this post


Link to post
Share on other sites

Does it bomb ( :)) on the computer where JET is installed or after deployment to another machine?

Did you make the 1.4.2_06 profile "Active" in JET Setup? Note that if you simply compiled but did not activate it, the profile status is marked as "Ready".

Share this post


Link to post
Share on other sites
Does it bomb ( :)) on the computer where JET is installed or after deployment to another machine?

Did you make the 1.4.2_06 profile "Active" in JET Setup? Note that if you simply compiled but did not activate it, the profile status is marked as "Ready".

It bombs on the development system, where I had installed JET. The sequence of events that led to this issue are as follows:

1. Excelsior Jet 3.6 Professional installed on PC (licensed copy, not a demo/eval)

2. Java 1.4.2 specified, classes compiled.

3. Project developed in Jet to compile JAVA classes into a DLL to be sourced from C++ code.

4. C++ project modified to utilize the JET xjvm.lib file (following instructions in HOWTO from Excelsior web site) and the new DLL.

5. C++ program compiled and run. It loads the DLL, accesses the classes just fine.

6. USG file generated from sequetial runs

7. Jet DLL recompiled using -perfect+ option.

8. C++ project modified to specify jvm.lib from Java1.4.2, project compiled specified DDynamicUseDLL.

9. Compiled C++ project and DLL moved onto test system, works.

10. Request to update JAVA version to 1.4.2_06 comes in.

11. Java 1.4.2_06 downloaded from Sun web site and installed.

13. Maintenance Pack 3 from Excelsior web site downloaded and installed.

14. Java 1.4.2_06 specified in Jet during Maintenance Pack installation, class files are compiled.

15. 1.4.2_06 set as Active in Jet Setup.

16. Java classes recompiled using 1.4.2_06.

17. Jet DLL rebuilt using 1.4.2_06.

18. C++ project modified to utilize the JET xjvm.lib file (following instructions in HOWTO from Excelsior web site) and the new DLL.

At that point, the moment I try to run the project, I get the error message:

JET is not properly installed on your system

If you port JET-compiled executables to another machine,

please use JetPack (see JET User's Guide, "Deployment automation")

Runtime error #3(trap) in JET

1.4.2_06 was set as Active, and I know it used it as the command prompt window when I ran jc =p =a Program.prj to recompile specified that it was using 1.4.2_06. It only happens when I set up xjvm.lib in the C++ project and try to run it.......

Share this post


Link to post
Share on other sites

In p.17,  you say that Jet DLL is rebuilt. Was it rebuilt using JetPerfect with .usg file created for 1.4.2?

If yes, does it work when you build it without JetPerfect?

Share this post


Link to post
Share on other sites
In p.17,  you say that Jet DLL is rebuilt. Was it rebuilt using JetPerfect with .usg file created for 1.4.2?

If yes, does it work when you build it without JetPerfect?

No, it wasn't built with JetPerfect. At that step I was utilizing Jet's xjvm.lib, so I was not compiling the C++ program with DDynamicUseDLL active, and if I understand the methodology from the howto, you don't need to compile with -perfect+ at that point. When I ran the C++ in debug mode, the trace stepped through the loading of the DLL, the GetDefaultJavaVMInitArgs_func call (the vm_args variable does not get set to zero or a null value, so the call seems to be working), but the moment it hits the CreateJavaVM_func it bombs.....

Share this post


Link to post
Share on other sites
Sign in to follow this  

×