[http://njcv.htmlplanet.com]
Frequently asked questions
Contents
General questions
- On starting Nmi's Java Code Viewer I am suddenly getting: The procedure entry point $sun_oi_CharToByteSingleByte_4init_5_could not be located in the dynamic link library SNJRT11.DLL and the program does not start. What's wrong?
You have probably installed snjrt20.exe from Symantec on your computer in order to run their .dll files. Installing snjrt20.exe from Symantec's Visual Cafe 3.0 or higher will make your operating system load the incorrect DLL's. NJCV requires the following DLL's: snjawt11.dll, snjrt11.dll and snjzip11.dll of version 1,1,5,0x0011. This problem is not a bug of NMI's Java Code Viewer; Symantec's new DLL's are not backwards compatible with older versions. Symantec has announced that there are no plans for correcting this error. To solve this problem, there are two possibilities.
- Re-installing NMI's Java Code Viewer entirely will replace the new, incompatible DLL's with the proper ones.
- You can write a small batch program to load NJCV's own DLL's at start-up.
- On starting NMI's Java Code Viewer, I get a dialog with the message Initializing... and then nothing happens. What should I do?
This problem may occur when you have installed a new version of NJCV without uninstalling your previous version correctly. Due to the possible interference of older files and libraries, NJCV will not start-up. Please uninstall all previous verions and make sure no old files are left behind before installing a newer version.
- Why is there not always a horizontal scrollbar for the Java class files list in case of long filenames?
This is a known bug and must be fixed in future releases. This bug is caused by the Windows native bytecode compiler. For now, please resize the window to see the entire filenames.
- I want to upgrade my version of NMI's Java Code Viewer. Is there a patch to do so?
No, there is not. Please uninstall/delete the version you are currently using and then unzip/install the newer version.
- If NMI's Java Code Viewer is written in Java, why is it compiled into native Windows 32 bit bytecode?
To make the program independent from any Java environment. It is also faster and more stable than a Java bytecode version.
- If NMI's Java Code Viewer is meant for Windows only, why is it written in Java and not in C++, Delphi or even Visual Basic?
First of all, Java is the most powerful and most beautiful language, allowing serious object oriented design and programming. Java therefore allows us to create very flexible and maintainable applications, in principle suitable for any platform. The Jad decompilation engine however is written in C++.
The decompilation and disassembly processes
- NMI's Java Code Viewer is unable to decompile or disassemble a specific Java class file. How is this possible?
First of all, a file can be corrupt or may not be a Java class at all. Check the Log-file for error-messages; these error messages are explained in console help of these help topics. If you want to be sure, you may send an e-mail with a description of your findings to support@njcv.htmlplanet.com. Please attach the particular class file to your e-mail.
- After decompiling a Java class, I cannot compile the generated source-code file. The source-code shows peculiar characters. What is the problem?
- The first possibility is that the name of a Java class file is not exactly the same as the name of the actual Java class. Try renaming the generated source-code file to the actual class name.
- A second possibility is that you are trying to compile a generated inner-class source-code file or a source-code file making use of inner-classes. NMI's Java Code Viewer decompiles all Java class files separately, so you have to make sure you have decompiled all required Java class files. From all generated source-code files you need to compose one complete source-code file.
- Java is rapidly going forward and the Jad decompilation engine is updated frequently. Minor errors may occur during the decompilation process, resulting in source-code that is not 100% correct. Before compiling the generated source-code file, correct these errors manually. See the questions and answers below as well.
- Why does NMI's Java Code Viewer sometimes fail to generate throws clause in the method declarations like the one in: int divide(int a, int b) throws DivideByZero { ... }?
Those throws clauses are represented in Java class files by Exceptions attributes. Because the Java Virtual Machine itself doesn't use these attributes (at least, in the common implementations) they can be stripped out of class files or not be generated by the compiler at all. NMI's Java Code Viewer has no way of restoring that information in full if it is missing from the class file.
- Why does NMI's Java Code Viewer sometimes generate weird-looking static fields like class$java$lang$Float and static methods class$(String)?
These fields/methods are the internal representations of [[file.class]] expressions and are automatically generated by the compiler. NMI's Java Code Viewer doesn't convert all that back into the original expression, but apparently the JDK compiler is able to compile "the long format" successfully.
- NMI's Java Code Viewer fails to decompile my class file, it spits out a bunch of gotos and JVM instructions. Why is that?
Either the class file has been obfuscated or it was produced by non-JDK Java compiler. NMI's Java Code Viewer works best on class files generated by Java compilers from Sun's JDK.
- In a generated file, in stead of the source file name I'm getting a message like this: 070DWARNING: Decompiling this code may violate your licensing agreement0A1A0C. What does this mean?
By using NMI's Java Code Viewer you may accidently circumvent copy protection or you may decompile (portions of) copyright software programs. Without permission of the copyright holders, this may be illegal. When you are getting a message with such a warning, you are violating copyrights unless you have permission of the copyright holders. NMI's Java Code Viewer and its owner cannot, under any circumstances, be held liable for violation of copyrights caused by registered and unregistered users of NMI's Java Code Viewer. Also see the Limited warranty section of the License agreement.
- When processing a selection of valid Java class files, NMI's Java Code Viewer sometimes seems to get stuck on the first Java class file. What is wrong?
This error may occasionally happen on Windows platforms using Japanese, Chinese or Korean character sets. If this appears to be the case, please contact us at support@njcv.htmlplanet.com and give us a full description of the occuring problem, your system and its operating system. Also attach some of the Java class files, causing the problem, to your e-mail.
Functions and features
- I want to decompile or disassemble Java class files from a .jar or .zip archive. What should I do?
Go to the File menu and select Open jar/zip archive. Then, in the file dialog, browse to the archive of your choice. The selected archive will automatically be extracted in its own directory. When the archive has been extracted, a file dialog will pop-up to open and select Java class files as usual.
- I want to decompile or disassemble Java class files from a .cab archive (or cabinet file). Is this possible?
No, this is not possible. A cabinet file is a Microsoft specific archive format and is not a Java format. Cabinet files are used as Java archives for Internet Explorer. If a website offers cabinet files, it usually also offers .jar archives for non-Microsoft browsers.
- Why are the class files decompiled into .nmi format and not into .java?
Because users may have the original Java source-code files stored in the same directory as the (selected) Java class files. Setting the extension to .nmi, overwriting your original Java source-code files by accident is prevented. If you do want the files to be decompiled into .java format, select java in the Options menu under Decompilation format.
- I've selected java as output format for generated source-code files. However, the extension of the source-code files remains .dis. How can this be?
When disassembling Java class files, the format of the generated source-code files is always .dis. The Decompilation format function in the Options menu is meant for the decompilation process only.
- I've selected my own editor in stead of Pfe32. However: 1. The editor does not open; 2. No source-code files are opened; 3. I am getting an error message. What is happening?
There are basically five possibilities:
- NMI's Java Code Viewer executes your editor, passing the source-code file(s) as arguments. This is the same way as the Windows' Open, Open with or Send to functions operate. The editor you've selected may not support opening files as arguments.
- Your editor does support opening a single file as an argument, but does not support opening multiple files.
- Your editor is already running and does not allow opening files until it has been closed again.
- Your editor is not compatible with spaces or does not support long file names.
- You may have selected an executable that is not an actual editor.
In all cases: try selecting an other editor or use Pfe32.
Registering an Evaluation Copy
- I want to register my copy NMI's Java Code Viewer. How can I get a license?
You can order a license online on the following web page: http://njcv.htmlplanet.com/order.html. If you have any questions about ordering and pricing, please e-mail us at sales@njcv.htmlplanet.com.
- On starting NMI's Java Code Viewer, on opening a new directory or when I want to start processing Java class files, a message pops up rambling about an Evaluation Copy. What should I do?
There are a few limitations using the Evaluation Copy. Only one directory can be opened per session, only one
selection of Java class files can be decompiled or disassembled and all Java class files cannot automatically be selected. These limitations are lifted if
you register your copy of NMI's Java Code Viewer.
- On entering the registration key, NMI's Java Code Viewer does not lift the limitations of the Evaluation Copy. What am I doing wrong?
- First of all, it's important that you enter your (company's) name correctly. This means that it should be spelled in exactly the same way as in the e-mail message containing your registration key. Note that NMI's Java Code Viewer is case-sensitive and that spaces and punctuation marks do matter.
- Secondly, on entering your registration key, NMI's Java Code Viewer checks if it is located in its original location on the machine where it was originally installed. This means that by copying or moving NMI's Java Code Viewer to another directory or another computer, registration will not be accepted. You must re-install NMI's Java Code Viewer.
- My registered copy of NMI's Java Code Viewer turned into an Evaluation Copy again. What happened?
You've probably moved or copied NMI's Java Code Viewer to another directory or machine. Move the program back to its original location or re-install it in the new location.
[Back to top]
[Help menu]
[Read me]
[How to...]
[Functions and features]
[Console help]
[FAQ]
[License agreement]
|