Java Virtual Machine Specification

Hi all,
Is there any online resource on the java virtual machine specification which is up to date? I just bought a book on that topic, but the publication date is 1999 :(.

The online version of the JVM spec is here....
http://java.sun.com/docs/books/vmspec/index.html
However that is just a html version of the book that you already have.
I suspect there might be some updates (or at least some things that should be updated) but you are not going to find them as a integrated document even if you can find them at all.

Similar Messages

  • Jvm-java virtual machine

    Hai iam new to this forum and as well i just started to learn java iwant to know in brief about JVM
    i think it may be silly question but as i am bigginer to java kindly expect reply

    georgemc wrote:
    faustofrancis wrote:
    A Java Virtual Machine (JVM) is a set of computer software programs and data structures which use a virtual machine model for the execution of other computer programs and scripts. The model used by a JVM accepts a form of computer intermediate language commonly referred to as Java bytecode. This language conceptually represents the instruction set of a stack-oriented, capability architecture.
    Java Virtual Machines operate on Java bytecode, which is normally (but not necessarily) generated from Java source code; a JVM can also be used to implement programming languages other than Java. For example, Ada source code can be compiled to Java bytecode, which may then be executed by a JVM. JVMs can also be released by other companies besides Sun (the developer of Java) -- JVMs using the "Java" trademark may be developed by other companies as long as they adhere to the JVM specification published by Sun (and related contractual obligations).
    The JVM is a crucial component of the Java Platform. Because JVMs are available for many hardware and software platforms, Java can be both middleware and a platform in its own right — hence the expression "write once, run anywhere." The use of the same bytecode for all platforms allows Java to be described as "compile once, run anywhere", as opposed to "write once, compile anywhere", which describes cross-platform compiled languages. The JVM also enables such unique features as Automated Exception Handling which provides 'root-cause' debugging information for every software error (exception) independent of the source code.
    The JVM is distributed along with a set of standard class libraries which implement the Java API (Application Programming Interface). The virtual machine and API have to be consistent with each other[dubious – discuss] and are therefore bundled together as the Java Runtime Environment.
    Execution environment
    Programs intended to run on a JVM must be compiled into a standardized portable binary format, which typically comes in the form of .class files. A program may consist of many classes in different files. For easier distribution of large programs, multiple class files may be packaged together in a .jar file (short for Java archive).
    The JVM runtime executes .class or .jar files, emulating the JVM instruction set by interpreting it, or using a just-in-time compiler (JIT) such as Sun's HotSpot. JIT compiling, not interpreting, is used in most JVMs today to achieve greater speed. Ahead-of-time compilers that enable the developer to precompile class files into native code for a particular platform also exist.
    Like most virtual machines, the Java Virtual Machine has a stack-based architecture.
    Although the JVM was primarily aimed at running compiled Java programs, other languages can now run on top of it[1], such as:
    * Ruby, with JRuby
    * JavaScript, with Rhino
    * Python, with Jython
    * Common Lisp, with Armed Bear Common Lisp
    * Groovy
    * Scala
    [edit] Bytecode verifier
    A basic philosophy of Java is that it is inherently "safe" from the standpoint that no user program can "crash" the host machine or otherwise interfere inappropriately with other operations on the host machine, and that it is possible to protect certain functions and data structures belonging to "trusted" code from access or corruption by "untrusted" code executing within the same JVM. Furthermore, common programmer errors that often lead to data corruption or unpredictable behavior such as accessing off the end of an array or using an uninitialized pointer are not allowed to occur. Several features of Java combine to provide this safety, including the class model, the garbage-collected heap, and the verifier.
    The JVM verifies all bytecode before it is executed. This verification consists primarily of three types of checks:
    * Branches are always to valid locations
    * Data is always initialized and references are always type-safe
    * Access to "private" or "package private" data and methods is rigidly controlled.
    The first two of these checks take place primarily during the "verification" step which occurs when a class is loaded and made eligible for use. The third is primarily performed dynamically, when data items or methods of a class are first accessed by another class.
    The verifier permits only some bytecode sequences in valid programs, e.g. a jump (branch) instruction can only target an instruction within the same function or method. Because of this, the fact that JVM is a stack architecture does not imply a speed penalty for emulation on register-based architectures when using a JIT compiler. In the face of the code-verified JVM architecture, it makes no difference to a JIT compiler whether it gets named imaginary registers or imaginary stack positions that need to be allocated to the target architecture's registers. In fact, code verification makes the JVM different from a classic stack architecture whose efficient emulation with a JIT compiler is more complicated and typically carried out by a slower interpreter.
    Code verification also ensures that arbitrary bit patterns cannot get used as an address. Memory protection is achieved without the need for a MMU. Thus, JVM is an efficient way of getting memory protection on simple architectures that lack an MMU. This is analogous to managed code in Microsoft's .NET CLR, and conceptually similar to capability architectures such as the Plessey 250, and IBM System/38.
    [edit] Bytecode instructions
    Main article: Java bytecode
    The JVM has instructions for the following groups of tasks:
    * Load and store
    * Arithmetic
    * Type conversion
    * Object creation and manipulation
    * Operand stack management (push / pop)
    * Control transfer (branching)
    * Method invocation and return
    * Throwing exceptions
    * Monitor-based concurrency
    The aim is binary compatibility. Each particular host operating system needs its own implementation of the JVM and runtime. These JVMs interpret the byte code semantically the same way, but the actual implementation may be different. More complicated than just the emulation of bytecode is compatible and efficient implementation of the Java core API which has to be mapped to each host operating system.
    [edit] Secure execution of remote code
    A virtual machine architecture allows very fine-grained control over the actions that code within the machine is permitted to take. This is designed to allow safe execution of untrusted code from remote sources, a model used by Java applets. Applets run within a VM incorporated into a user's browser, executing code downloaded from a remote HTTP server. The remote code runs in a restricted "sandbox", which is designed to protect the user from misbehaving or malicious code. Publishers can purchase a certificate with which to digitally sign applets as "safe", giving them permission to ask the user to break out of the sandbox and access the local file system and network...
    [edit] C to bytecode compilers
    From the point of view of a compiler Java bytecode is just another processor with an instruction set for which code can be generated. The JVM was originally designed to execute programs written in the Java language. However, the JVM provides an execution environment in the form of a bytecode instruction set and a runtime system that is general enough that it can be used as the target for compilers of other languages.
    Because of its close association with Java the JVM performs the runtime checks mandated by the Java specification. This can make it technically difficult to translate C code (which is much more lax with regard to runtime checking) to the JVM and expect it to run without issuing any warnings.
    Compilers targeting many different languages, including Ada and COBOL, have been written.
    [edit] Licensing
    Starting with J2SE 5.0, changes to the JVM specification have been developed under the Java Community Process as JSR 924[2]. As of 2006, changes to specification to support changes proposed to the class file format (JSR 202[3]) are being done as a maintenance release of JSR 924. The specification for the JVM is published in book form,[4] known as "blue book". The preface states:
    We intend that this specification should sufficiently document the Java Virtual Machine to make possible compatible clean-room implementations. Sun provides tests which verify the proper operation of implementations of the Java Virtual Machine.
    Sun's JVM is called HotSpot. Clean-room Java implementations include Kaffe and IBM J9. Sun retains control over the Java trademark, which it uses to certify implementation suites as fully compatible with Sun's specification.
    [edit] See also
    * HotSpot, Sun's Virtual Machine
    * Da Vinci Machine, a starting Sun project aiming to prototype the extension of the JVM to add support for dynamic languages.
    * List of Java virtual machines
    * Automated Exception Handling
    * Common Language Runtime
    * Parrot virtual machine
    * Java bytecode
    * Class (file format)
    * Java performance
    * List of compilers
    [edit] Notes
    1. ^ Tolksdorf, Robert (2005). Languages for the Java VM. Retrieved on 2008-04-23.
    2. ^ JSR 924 – Specifies changes to the JVM specification starting with J2SE 5.0
    3. ^ JSR 202 – Specifies a number of changes to the class file format
    4. ^ The Java Virtual Machine Specification (the first and second editions are also available online)
    [edit] References
    * Clarifications and Amendments to the Java Virtual Machine Specification, Second Edition includes list of changes to be made to support J2SE 5.0 and JSR 45
    * JSR 45 – Specifies changes to the class file format to support source-level debugging of languages such as JSP and SQLJ that are translated to Java
    [edit] External links
    * The Java Virtual Machine Specification
    * Java-Virtual-Machine.net - All about Java Virtual Machines!
    * List of languages which compile to the Java virtual machine.
    * A decade after Java arrived, there have been improvements in the runtime performance of platform-independent virtual-machine based software.
    * Kaffe.org - the Kaffe project
    * JamVM - The Jam Virtual Machine
    * The lean, mean, virtual machine - An introduction to the basic structure and functionality of the Java Virtual Machine
    * Java Glossary - installing Java useful tips for installing Java for users and developers
    * Test your Java Virtual Machine
    * A list of Java VM-s used in mobile devices
    * More Languages for the JVM
    * Sun to build virtual machine for iPhone - ComputerWorldAre you aware that Wikipedia has ripped off your post?not yet?
    Let me see if the systems work!

  • Error with Java Virtual Machine Laucher

    Hi, I'm getting the follwowing error with I try to lauch universal installer.
    Fatal exception occured. Program will exit.
    Does anyone have any idea what's going on? I have java ee 5 sdk installed on my machine.

    Hello Guys!
    I have a problem here and i cant find the solution!
    somebody can help me?
    In the installation, after run the runInstaller show
    this message:
    Initializing Java Virtual Machine from
    /tmp/OraInstall2008-04-27_0733-08PM/jre/1.4.2/bin/java
    . Please wait...
    [oracle@localhost ~]$ Oracle Universal Installer,
    Version 10.2.0.1.0 Production
    Copyright (C) 1999, 2005, Oracle. All rights
    reserved.
    Exception java.lang.UnsatisfieldLinkError:
    /tmp/OraInstall2008-04-27_0733-08PM/jre/1.4.2/lib/i386
    /libawt.so: libXp.so.6: cannot open shared object
    file: No such file or directory occurred..
    java.lang.UnsatisfieldLinkError:
    /tmp/OraInstall2008-04-27_0733-08PM/jre/1.4.2/lib/i386
    /libawt.so: libXp.so.6: cannot open shared object
    file: No such file or directory<snip>
    So I went to MetaLink and did a search on the "libXp.so.6: cannot open shared object" found in your error message. The very first hit returned was note 308755.1, titled "OUI Reports The Error: Exception java.lang.UnsatisfiedLinkError: /tmp/OraInstall*/jre/1.4.2/lib/i386/libawt.so: libXp.So.6: Cannot Open Shared Object File"
    The terms of MetaLink usage prevent me from quoting from the note, but you would be advised to go read it for yourself. Suffice it to say you are missing some rpms. The specific ones missing are not listed in the above referenced not, but it will point you in the right direction.

  • Osdm error 'could not create the Java virtual machine.'

    Running on Windows XP. SQL Developer reports Java(TM) Platform=1.5.0_06
    I downloaded and unzipped the osdm early adopter release,but when I double click on the osdm.exe, I get a dialog box titled"Java Virtual Machine Launcher" with the error:
    could not create the Java virtual machine.
    I'm don't know where to begin to troubleshoot this problem.
    Is there a log,trace,error file somewhere?
    Do I need something specific in my path or an environment variable set?

    Thanks Jim, for helping and the support. I'll respond to a few things in this thread for the rest of the forum.
    Feedback
    Let's start with the feedback and support. As Rene said, he is working at answering all queries coming into the feedback application. This means reviewing the issues, working with the developers and logging bugs. Each comment and query in that application is addressed and users can go back in an review the feedback for their own comments in the application too. We have had considerable interest and downloads, about which we are very excited, and this means there are lots of queries. Rene is addressing all these, and as I type, there are no comments in that application that have not been addressed. Not all are closed, as there are some outstanding issues, but each user who has submitted a comment shold have received at least one email.
    The Team
    I'm reluctant to comment about which part of the product is built in which country, but will say that SQL Developer has been a small team, with the greater percentage of developers living outside the US from the outset. I love working in the team including the wide diversity of locales and cultures and also think that because we live across multiple time zones, we can help users most times of the day or night. We are very privileged to have had the modeling team join us and I'm sure you'll get to know them in time too. If you are interested, the team stretches across a few states in the US, Ireland, Northern Ireland,England, Belgium, Bulgaria, India and China!
    Now to the problem. - Java virtual machine
    1. There is a choice of download, either with the JDK or without. If you download the build with the JDK, there should be no problem, as the product knows where to find the jdk. I'm not sure I see which of these 2 downloads was used. So that would be useful information to have.
    2. If you use the build without the JDK, then Data Modeling looking for the detail in your path.(Unlike in SQL Developer where we prompt you) You can test to see what is in your path by starting a command line, or command prompt and typing java -version. This will tell you what version of java is being looked for and used by Data Modeling.
    If you do not have a JDK, then you can download and install that as described on the download page.
    Troubleshooting
    We want to release SQL Developer Data Modeling as a standalone tool (i.e. what you are testing today) or underpinned by a repository. So our main goal is to ensure that we have a solid stable and usable product for production. The plan is to follow production with a much tighter integration to the underlying SQL Developer framework.
    Regards
    Sue

  • "Could not create the Java virtual machine." when max-heap-size is 926Mb

    We received "Could not create the Java virtual machine." when the max-heap-size provided exceeded 926 Mb in XP PC. We found the below mentioned link which confirms that this is a bug
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6945136
    But the problem is that the issue does not get recreated in all the XP PCs. Increasing the max heap size to greater than 926 works fine in some XP PCs.
    Could there be any configuration related issues for this problem...

    If you can't find any difference in your java versions or overall runtime configurations, it's quite possible that the bug doesn't have the complete picture--it might be more subtle than the conditions described. Maybe it works with certain versions of certain lower level DLLs. Maybe it has some dependency on which services are running. Maybe the order in which certain components got installed put one version of something vs. another further ahead in a CLASSPATH, LD_LIBRARY_PATH, etc. variable.
    Or maybe it's as simple as you're not running the version of Java you think you are on all those boxes, as jschell suggests.
    Regardless of the reason why it happens to work on some configurations, you found that it fails on some, and that failure is in fact a known bug. So it shouldn't surprise you that it fails at least sometimes, and the fact that it works sometimes has been rendered irrelevant. Unless you're doing research into the specific cause of this issue.

  • Java virtual machine shuts down

    When a Java virtual machine shuts down abruptly (e.g. user type ^C or user logoff), does the Java virtual machine execute the finalize() method of all the objects in the heap?
    If not, could you please tell me where should I put the cleanup code of my application so that they will get execute even when the Java virtual machine shuts down abruptly?
    Thank you.

    ...execute the finalize() method of all the objects in the heap? It shouldn't matter, because you shouldn't be doing anything in a finalizer anyways. Any resource that is not memory should be explicitly cleaned up (not using a finalizer.) And if it is just memory then it doesn't matter if it is cleaned or not - it all gets returned to the OS.
    There is ABSOLUTELY NO GUARANTEE that a finalizer will even be called. The only thing the specification says is that if it is called that it will only be called once.
    And if you don't believe me then feel free to search the forums for the other numerous threads and respondants that say the same thing. And the bug lists that demonstrate how finalizers are not called on normal exits.
    So once you rework your design/code to stop relying on those pesky finalizers, if you still have some clean up that needs to occur on a clean application exit then you can use Runtime.addShutDownHook().

  • Java Virtual Machine Tutorials

    Hey Everyone,
    Does anybody know where a good tutorial on the workings of the Java Virtual Machine can be found? I am particularly looking for information on how class loading takes place. Ideally I am looking for a tutorial that isn't to specifications orientated, something that is quite wordy and very descriptive.
    If anybody can point me in the right direction I will be greatly appreciative.
    Regards
    David

    Check this out, free online chapters of Bill Venners' Inside the Java Virtual Machine: http://www.artima.com/insidejvm/ed2/index.html Excellent book IMO.
    You might also find this useful, a comparison of three JVM books: http://www.javaworld.com/jw-03-1998/jw-03-bookreview.html The one thing to note is that this comparison is rather old, and may not be entirely applicable to all the books today. Don't forget to read through the official JVM specification too, available online.
    Tons of neat stuff about JVM internals can also be found at JavaWorld: http://www.javaworld.com/channel_content/jw-jvm-index.shtml

  • ERR REP-6101Failed to strat Java Virtual Machine

    Hallo
    I have a problem with XML customizing of reports. When I want to run full defined XML report by RWRUN60 I become this error:
    ERROR:Unable to obtain JNI enviroment!
    ERROR: XML definition failed to parse!
    ERR REP-6101 Failed to start Java Virtual Machine. Please check the Java Runtime Enviroment Setup.
    Does enyone knows how to solute this problem. Thanks.
    DM

    Pls try this
    Problem Description
    REP-6101 Failed to Start Java Virtual Machine error is returned when running a report from the command line using the CUSTOMIZE= runtime parameter.
    NOTE: The error does not occur if the CUSTOMIZE parameter is not included in the command line.
    Solution Description
    Set the following Environment Variables:
    REPORTS60_CLASSPATH to include the rt.jar, myreports60.jar, and xmlparser.jar files and set REPORTS60_JNI_LIB.
    For example setting the environment variables using the C shell:
    setenv REPORTS6O_CLASSPATH $ORACLE_HOME/network/jre11/lib/rt.jar:
    $ORACLE_HOME/reports60/java/myreports60.jar:$ORACLE_HOME/reports60/
    java/xmlparser.jar
    setenv REPORTS60_JNI_LIB $ORACLE_HOME/network/jre11/lib/sparc/
    native_threads/libjava.so
    Explanation
    The REPORTS60_CLASS path needs to be set to include the necessary jar files and REPORTS60_JNI_LIB specifies the Java Virtual Machine native library.
    References
    For additional information please refer to section 5.29 of the Developer 6i Release Notes.
    Thanks
    The Oracle Reports Team

  • Java Virtual Machine Launcher

    Hello, I've been programming in java a little while now, but lately I've been getting the error that the Java Virtual Machine Launcher cannot start. I only get this when I log into Windows XP, I can compile and run programs and applets (on web and through applet viewer no problem).
    I was under the impression that the jvm didn't start until the user started it, say by launching a java program with the "java HelloWorld" command. Any ideas what is happening on my computer? thanks

    Other places that apps can start on login:
    Registry: HKLM\Software\Microsoft\Windows\CurrentVersion\Run
    or you could have something running as a service... Do you have any ideas of what executable the error is specifically refering to?
    Re-installing the JVM is a good start.
    - K

  • E61i: Is there a JAVA Virtual Machine

    Hi there
    i need the JAVA Virtual Machine to access and use a web site. it seems that this runtime enviro does not exist for the symbian os ... is it true?
    it seems that i wasted resources on this machine. it seems that pot holes exist for mobile transactions on smartphones.
    kg

    J2ME is the Java version designed to run on Mobile phones. If you're trying to run an applet that was designed for the J2SE ("Standard Edition")--it will not run on mobile phones.
    OK, despite what all the "E90 is not a communicator" folks out there want, all Symbian-based devices (including the E61i) are CELLPHONES FIRST. If someone looking for something that gives them all the power of their laptop, they're looking in the wrong place. Especially for us Symbian people, it's likely the best that we'll ever do is the J2ME version.
    Of course J2ME is very powerful in its own right... but Java applications have got to be specifically written for it.
    If that's not good enough, you might want to look at the more powerful of the Windows Mobile devices. They too have J2ME, but people have ported J2SE to it such as the Mysaifu JVM (http://www2s.biglobe.ne.jp/~dat/java/project/jvm/index_en.html). Of course, this is "hackware" and you'll probably run into lots of oversights and incompatibilities with a typical J2SE app anyway... but it's about the only way in the near future where you can even hope to get a full J2SE JVM working in a pocket-sized device; Also remember that the power comes at a price: typical Windows Mobile PDAs that have the power to run a full J2SE rarely has the battery life necessary for a true road warrior.
    Cheers.

  • How does JVM (Java Virtual Machine) relate to XI?

    Can somebody describe to me exactly what JVM (Java Virtual Machine) is and how it is related/associated to XI?  Responses are appreciated, thanks in advance!

    HI,
    A Java Virtual Machine (JVM), is a virtual machine that interprets and executes Java bytecode. This code is most often generated by Java language compilers, although the JVM can also be targeted by compilers of other languages. JVMs may be developed by other companies as long as they adhere to the JVM standard published by Sun.
    The JVM is a crucial component of the Java Platform. Because JVMs are available for many hardware and software platforms, Java can be both middleware and a platform in its own right - hence the expression "Write once, run anywhere." The use of the same bytecode for all platforms allows Java to be described as "Compile once, run anywhere", as opposed to "Write once, compile anywhere", which describes cross-platform compiled languages.
    Starting with J2SE 5.0, changes to the JVM specification have been developed under the Java Community Process as JSR 924[1]. As of 2006, changes to specification to support changes proposed to the class file format (JSR 202[2]) are being done as a maintenance release of JSR 924. The specification for the JVM is published in book form[3], known as "blue book". The preface states:
    We intend that this specification should sufficiently document the Java Virtual Machine to make possible compatible clean-room implementations. Sun provides tests which verify the proper operation of implementations of the Java Virtual Machine.
    Sun's JVM is called HotSpot. Clean-room Java implementations include Kaffe and IBM's. Sun retains control over the Java trademark, which it uses to certify implementation suites as fully compatible with Sun's specification
    we have two caches JAVA,ABAP.
    i mean all objects which will execute in JAVA Cache those need the JVM.
    Regards
    Chilla

  • I have updated my iTunes to the newest version, 10-25 on a windows XP system. Now my java virtual machine is not working and I need it to run applet window. My Java is also newest version. What can I do to fix/repair my issue?

    I need help with java on windowsXP after updating iTunes to the latest version. My java will not work and I get error message need java virtual machine to run applet window. Did not have this problem prior to the iTunes update.
    Please help, Thanks

    If your library was working on your computer and then popped up empty all of a sudden then this might be what you need...
    Empty/corrupt library after upgrade/crash
    Hopefully it's not been too long since you last upgraded iTunes, in fact if you get an empty/incomplete library immediately after upgrading then with the following steps you shouldn't lose a thing or need to do any further housekeeping. In the Previous iTunes Libraries folder should be a number of dated iTunes Library files. Take the most recent of these and copy it into the iTunes folder. Rename iTunes Library.itl as iTunes Library (Corrupt).itl and then rename the restored file as iTunes Library.itl. Start iTunes. Should all be good, bar any recent additions to or deletions from your library.
    See iTunes Folder Watch for a tool to catch up with any changes since the backup file was created.
    When you get it all working make a backup!
    tt2

  • Could not find a valid Java virtual machine to load

    On a fresh copy of CFMX8, when I run updater 7, it responds
    'Could not find a valid Java virtual machine to load'.
    This is being installed on a Win2K3 server and this is on a
    'freshly minted' POC box solely for the purpose of
    installing/testing CFMX8 to determine how it compares to our
    CFMX6.1 environment.
    You will notice that it is NOT being installed in the default
    directory:
    JRun Version Information
    Vendor Macromedia
    Product Name JRun 4.0
    Build Number 108487
    Version Full Version
    License Type Trial License
    Serial Number JRD400-69341-58259-30688
    JRun 3.x Serial Number
    Restricted to Single IP No
    Installation Root D:\ISG\software\jrun4
    Expiration Date Mar 29, 2008
    Evaluation Days Remaining 29
    JDK path (JAVA_HOME): D:/ISG/software/jrun4/jre
    I do find it curious that I can run the Updater 6, and it
    seems to behave properly (it finds the VM). I ran it just as a
    test, then wiped everything to start over from scratch. For some
    reason do I need to direct Updater 7 to the installation that I did
    not have to do in Updater 6?
    Thank you in advance for your assistance - Jacques

    tried executing the following cmd, below is the following error:
    <<command i executed>>
    C:\Program Files\Java\jre1.5.0_09\bin>java -classpath "C:\Program Files\Java\jre1.5.0_09\lib\javaws.jar" com.sun.javaws.Main https://<IPddr>:8443/sample.jnlp
    Can you pls let me know how it can be resolved?Umm.. I am not sure, but I will start with
    a question. Why not do it this way?C:\Program Files\Java\jre1.5.0_09\bin>javaws https://<IPddr>:8443/sample.jnlp

  • The crash happened outside the java virtual machine in native code

    Hi,
    I have a biometric device with which I am given some C++ dlls. I am trying to call methods inside these using java (jna). I am loading the dll "zkemsdk.dll+" as follows:
    zkemkeeper INSTANCE1 = (zkemkeeper)Native.loadLibrary("zkemsdk", zkemkeeper.class);//zkemsdk is the dll, I am loading the dll here.
    Then, I am calling the function:
    zkemkeeper.INSTANCE1.Z_Connect_NETEX("ip address",4370);//Z_Connect_NETEX is a function inside zkemsdk.dll
    This returns me true or false based on whether am connected to the biometric device or not.Thus I am able to invoke this method without issues. But for other methods inside the dll, run time exception is thrown in console:
    Can someone help me resolve this issue. ??? Following is the content of the log file generated.
    # A fatal error has been detected by the Java Runtime Environment:
    # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0351fe3b, pid=1664, tid=3832
    # JRE version: 6.0_20-b02
    # Java VM: Java HotSpot(TM) Client VM (16.3-b01 mixed mode, sharing windows-x86 )
    # Problematic frame:
    # C [zkemsdk.dll+0xfe3b]
    # If you would like to submit a bug report, please visit:
    # http://www.java.net/external?url=http://java.sun.com/webapps/bugreport/crash.jsp
    # The crash happened outside the Java Virtual Machine in native code.
    # See problematic frame for where to report the bug.
    --------------- T H R E A D ---------------
    Current thread (0x003a9000): JavaThread "main" [_thread_in_native, id=3832, stack(0x008c0000,0x00910000)]
    siginfo: ExceptionCode=0xc0000005, reading address 0x00000106
    Registers:
    EAX=0x0090f7c4, EBX=0x00000001, ECX=0x00000000, EDX=0x00000001
    ESP=0x0090f7b4, EBP=0x0090f848, ESI=0x00000096, EDI=0x003a9000
    EIP=0x0351fe3b, EFLAGS=0x00010216
    Top of Stack: (sp=0x0090f7b4)
    0x0090f7b4: 00000000 0090f930 000003fc 00000103
    0x0090f7c4: 0090f800 6d9532d0 373e92a0 00912ec5
    0x0090f7d4: 00000401 0090f7d8 369860d1 0090f800
    0x0090f7e4: 37390050 00000000 37390f90 00000000
    0x0090f7f4: 0090f800 0090f930 003a9000 0090f830
    0x0090f804: 10008fd8 0090f840 0090f930 00000008
    0x0090f814: 0090f88c 0090fa28 0090f8f4 0090f848
    0x0090f824: eb53f637 0351ffdc 00000096 00000003
    Instructions: (pc=0x0351fe3b)
    0x0351fe2b: 0f 53 50 8d 44 24 18 50 e8 58 7c 00 00 83 c4 0c
    0x0351fe3b: 8b 4e 70 51 8b 0e 83 c3 04 53 6a 64 8d 54 24 18
    Stack: [0x008c0000,0x00910000], sp=0x0090f7b4, free space=13d0090f2e8k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    C [zkemsdk.dll+0xfe3b]
    C [jna5972695927945545932.tmp+0x9182]
    C [jna5972695927945545932.tmp+0x2161]
    C [jna5972695927945545932.tmp+0x2849]
    j com.sun.jna.Function.invokeInt(I[Ljava/lang/Object;)I+0
    j com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;+90
    j com.sun.jna.Function.invoke(Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+194
    j com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+344
    j $Proxy0.Z_Beep(J)Z+19
    j com.rfarrays.bhabs.fingerPrint.main([Ljava/lang/String;)V+84
    v ~StubRoutines::call_stub
    V [jvm.dll+0xf049c]
    V [jvm.dll+0x17fcf1]
    V [jvm.dll+0xf051d]
    V [jvm.dll+0xf9bc5]
    V [jvm.dll+0x10181d]
    C [javaw.exe+0x2155]
    C [javaw.exe+0x8614]
    C [kernel32.dll+0xb729]
    Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
    j com.sun.jna.Function.invokeInt(I[Ljava/lang/Object;)I+0
    j com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;+90
    j com.sun.jna.Function.invoke(Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+194
    j com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+344
    j $Proxy0.Z_Beep(J)Z+19
    j com.rfarrays.bhabs.fingerPrint.main([Ljava/lang/String;)V+84
    v ~StubRoutines::call_stub
    --------------- P R O C E S S ---------------
    Java Threads: ( => current thread )
    0x02b10c00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=1976, stack(0x02dc0000,0x02e10000)]
    0x02b0a400 JavaThread "CompilerThread0" daemon [_thread_blocked, id=1280, stack(0x02d70000,0x02dc0000)]
    0x02b08c00 JavaThread "Attach Listener" daemon [_thread_blocked, id=1984, stack(0x02d20000,0x02d70000)]
    0x02b07800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2160, stack(0x02cd0000,0x02d20000)]
    0x02b02400 JavaThread "Finalizer" daemon [_thread_blocked, id=2052, stack(0x02c80000,0x02cd0000)]
    0x02afd800 JavaThread "Reference Handler" daemon [_thread_blocked, id=752, stack(0x02c30000,0x02c80000)]
    =>0x003a9000 JavaThread "main" [_thread_in_native, id=3832, stack(0x008c0000,0x00910000)]
    Other Threads:
    0x02afc400 VMThread [stack: 0x02be0000,0x02c30000] [id=1504]
    0x02b1b800 WatcherThread [stack: 0x02e10000,0x02e60000] [id=1980]
    VM state:not at safepoint (normal execution)
    VM Mutex/Monitor currently owned by a thread: None
    Heap
    def new generation total 4928K, used 2455K [0x22970000, 0x22ec0000, 0x27ec0000)
    eden space 4416K, 55% used [0x22970000, 0x22bd5db0, 0x22dc0000)
    from space 512K, 0% used [0x22dc0000, 0x22dc0000, 0x22e40000)
    to space 512K, 0% used [0x22e40000, 0x22e40000, 0x22ec0000)
    tenured generation total 10944K, used 0K [0x27ec0000, 0x28970000, 0x32970000)
    the space 10944K, 0% used [0x27ec0000, 0x27ec0000, 0x27ec0200, 0x28970000)
    compacting perm gen total 12288K, used 343K [0x32970000, 0x33570000, 0x36970000)
    the space 12288K, 2% used [0x32970000, 0x329c5f20, 0x329c6000, 0x33570000)
    ro space 10240K, 51% used [0x36970000, 0x36e9ae00, 0x36e9ae00, 0x37370000)
    rw space 12288K, 54% used [0x37370000, 0x37a072d8, 0x37a07400, 0x37f70000)
    Dynamic libraries:
    0x00400000 - 0x00424000 C:\Program Files\Java\jre6\bin\javaw.exe
    0x7c900000 - 0x7c9b2000 C:\WINDOWS\system32\ntdll.dll
    0x7c800000 - 0x7c8f6000 C:\WINDOWS\system32\kernel32.dll
    0x77dd0000 - 0x77e6b000 C:\WINDOWS\system32\ADVAPI32.dll
    0x77e70000 - 0x77f03000 C:\WINDOWS\system32\RPCRT4.dll
    0x77fe0000 - 0x77ff1000 C:\WINDOWS\system32\Secur32.dll
    0x7e410000 - 0x7e4a1000 C:\WINDOWS\system32\USER32.dll
    0x77f10000 - 0x77f59000 C:\WINDOWS\system32\GDI32.dll
    0x76390000 - 0x763ad000 C:\WINDOWS\system32\IMM32.DLL
    0x7c340000 - 0x7c396000 C:\Program Files\Java\jre6\bin\msvcr71.dll
    0x6d800000 - 0x6da97000 C:\Program Files\Java\jre6\bin\client\jvm.dll
    0x76b40000 - 0x76b6d000 C:\WINDOWS\system32\WINMM.dll
    0x6d7b0000 - 0x6d7bc000 C:\Program Files\Java\jre6\bin\verify.dll
    0x6d330000 - 0x6d34f000 C:\Program Files\Java\jre6\bin\java.dll
    0x6d290000 - 0x6d298000 C:\Program Files\Java\jre6\bin\hpi.dll
    0x76bf0000 - 0x76bfb000 C:\WINDOWS\system32\PSAPI.DLL
    0x6d7f0000 - 0x6d7ff000 C:\Program Files\Java\jre6\bin\zip.dll
    0x68000000 - 0x68036000 C:\WINDOWS\system32\rsaenh.dll
    0x77c10000 - 0x77c68000 C:\WINDOWS\system32\msvcrt.dll
    0x769c0000 - 0x76a74000 C:\WINDOWS\system32\USERENV.dll
    0x5b860000 - 0x5b8b5000 C:\WINDOWS\system32\netapi32.dll
    0x6d610000 - 0x6d623000 C:\Program Files\Java\jre6\bin\net.dll
    0x71ab0000 - 0x71ac7000 C:\WINDOWS\system32\WS2_32.dll
    0x71aa0000 - 0x71aa8000 C:\WINDOWS\system32\WS2HELP.dll
    0x71a50000 - 0x71a8f000 C:\WINDOWS\System32\mswsock.dll
    0x76f20000 - 0x76f47000 C:\WINDOWS\system32\DNSAPI.dll
    0x76d60000 - 0x76d79000 C:\WINDOWS\system32\iphlpapi.dll
    0x76fb0000 - 0x76fb8000 C:\WINDOWS\System32\winrnr.dll
    0x76f60000 - 0x76f8c000 C:\WINDOWS\system32\WLDAP32.dll
    0x76fc0000 - 0x76fc6000 C:\WINDOWS\system32\rasadhlp.dll
    0x10000000 - 0x10052000 C:\Documents and Settings\bkonwar\Local Settings\Temp\jna5972695927945545932.tmp
    0x03510000 - 0x03546000 C:\WINDOWS\system32\zkemsdk.dll
    0x03560000 - 0x03574000 C:\WINDOWS\system32\commpro.dll
    0x662b0000 - 0x66308000 C:\WINDOWS\system32\hnetcfg.dll
    0x71a90000 - 0x71a98000 C:\WINDOWS\System32\wshtcpip.dll
    VM Arguments:
    jvm_args: -Dfile.encoding=Cp1252
    java_command: com.xyz.bhabs.fingerPrint
    Launcher Type: SUN_STANDARD
    Environment Variables:
    PATH=C:/Program Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin;C:/Program Files/Java/jre6/lib/i386;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;;C:\Program Files\Java\jre1.6.0_07\bin;C:\Program Files\Android\android-sdk-windows\tools;C:\Program Files\TortoiseSVN\bin
    USERNAME=BKonwar
    OS=Windows_NT
    PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 13, GenuineIntel
    --------------- S Y S T E M ---------------
    OS: Windows XP Build 2600 Service Pack 3
    CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 15 stepping 13, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3
    Memory: 4k page, physical 2085780k(1286036k free), swap 4024188k(3249652k free)
    vm_info: Java HotSpot(TM) Client VM (16.3-b01) for windows-x86 JRE (1.6.0_20-b02), built on Apr 12 2010 13:52:23 by "java_re" with MS VC++ 7.1 (VS2003)
    time: Wed May 25 10:02:24 2011
    elapsed time: 21 seconds
    Regards,
    Bhabs
    Edited by: 861222 on May 25, 2011 12:19 AM

    861222 wrote:
    # A fatal error has been detected by the Java Runtime Environment:
    # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0351fe3b, pid=1664, tid=3832Not much to tell here. This line here looks suspiciously like a null-pointer error happening in the native code. It is impossible to say how, where and why. Go back to your code and start debugging I'd say, see where invalid data can be passed to the native code.

  • Could not initialize the Java Virtual Machine

    While trying to configure the turnkey product I encounter an error in starting the JBoss for Adobe LiveCycle ES v8.0 service. The JBossService.exe ends up showing in the task list - but the service shows its status as "starting" and an enty stating: "Could not initialize the Java Virtual Machine" is placed in the event log. I've seen a posting on this form that traced at least some of these symptoms to the account under which the service is configured to run - but I don't believe that solution applies in this case - I'm starting the service under the System Account which has all the permissions it needs to start the service.

    Thanks very much for the suggestion. Indeed, the problem turned out to be memory related - I was able to correct the issue by updating the registry keys "JVM Option Number 4" and "JVM Option Number 5" so specify lower values. For some reason the system didn't like the 1024 meg size that was set by default (our server has 2 gig of memory).

Maybe you are looking for