Jump to content
Excelsior Forums


  • Content count

  • Joined

  • Last visited


Community Reputation

0 Neutral

About FrankZado

  • Rank
  • Birthday 01/01/1
  1. I'm currently running Jet 3.70 Professional, and have encountered a wierd problem in a program I'm running through JET. The following code exists in a custom class used to process HTML files (said class extends JScrollPane): displayPane = new JEditorPane(); displayPane.setEditable(false); displayPane.setContentType("text/html"); displayPane.addHyperlinkListener(this); getViewport().add(displayPane); pageLoader(homePage, true); JFrame frame = new JFrame(); frame.getContentPane().add(this); frame.setSize(600,500); frame.show(); This code exists in the constructor, which is passed a String reference to a URL. The reference is parsed and fed to displayPane. It works fine when compiled and run via standard JAVA...the Frame pops up and displayes the correct content. However, when I run this through JET, the frame does not pop up and I get the following error: UIDefaults.getUI() failed: no ComponentUI class for: javax.swing.JEditorPane[,0,0,0x0,invalid,alignmentX=null, alignmentY=null, border=, flags=0, maximumSize=, minimumSize=, preferredSize=,caretColor=, disabledTextColor=, editabe=true, margin=, selectedTextColor=, selectionColor=, kit=, typeHandlers=] java.lang.Error If the displayPane code is commented out, the frame pops up just fine and no errors occur. In hunting through the forums here, I found a post referring to this type of problem with the recommendation of, in the Jet GUI, setting it to include all items found in the CLASSPATH. Well, when initially working the project I had done that...but I'm building a standalone DLL via JetPerfect, now. How can I make sure the right classes are being pulled in, or find out what classes I might be missing ? Could it possibly be the UI class for the JEditorPane? In my research on this issue as a general JAVA issue, I've found when it generally occurs, it is one of two things. First, an issue when using a custom look and feel, and second, and issue with the classloader. The program is not using a custom look and feel, nor is it in any section of code specifying an alternate look and feel. As for the classloader......I noticed that in one of the earlier generated .usg files, it listed the following: .default_classloader application .locale_detected Cp1252 I'd not seen those references before in a .usg file, so I'm wondering if it might be the classloader issue, where it isn't getting the right loader for the class? If anyone had any advice on how to solve this problem, I would greatly appreciate the assist!
  2. FrankZado

    Jet Pro 3.60 MP3 / Java 1.4.2_06 support?

    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.....
  3. FrankZado

    Jet Pro 3.60 MP3 / Java 1.4.2_06 support?

    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.......
  4. 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!
  5. FrankZado

    JET DLL in Visual C++ 6.0

    I've just been tasked with taking the JAVA portion of a program we work with and run it through JET, in order to provide a measure of code protection before the program gets released. Seeing as the JAVA portion of the program is actually run from C++ code (the C++ code instantiates a JavaVM and runs the Java portion), I thought it best to use JET to package the JAVA portion as a DLL file, which can then be accessed via JNI. The one problem I've been having is that I am unable to make VC++ utilize the xjvm.lib file, at least from utilizing the GUI. In the Project Setting for the module that creates the executable I specified the lib file under the Link tab and in Object/library modules. I thought this was it, but I think I'm wrong. It compiles fine, and when I load the program it loads the DLL file but can never find any of the class files. I wrote a quick wrapper class which uses the exact same code to instantiate the VM, load the dll, load the class file, and call the constructor. I compiled this simple wrapper on the command line, making sure to link the xjvm.lib file. Running this method, everything worked. The class was found, the Java code did as it should, and I got the .usg file. Is there something anyone might know that I would be missing in the GUI portion of VC++ to get it to properly link the xjvm.lib file? I'd rather not do it command line, as there isn't a batch file for it, and there are some 25 separate modules in the program to deal with, and many dependencies which are already set in the GUI. If any could point me in the right direction, I would be GREATLY appreciative....thanks! Frank