JNI - Java code executed before native code

Hi there, I'm having a problem, I've got this native thing working but it seems like my java code is being executed before the native one. Example :
class Hello
{ static { System.loadLibrary("D1"); }
public native void displayHello();
public static void main(String[] args)
new Hello().displayHello();
System.out.println("kfdhgkfldh");
The output is:
"kfdhgkfldh"
"Message from JNI"
So the printfunction from the main has been executed before the one in my C++ program
Any idea why ??
(this is quite important)
thx

Tryfflush(stdin);before returning from the native function

Similar Messages

  • Execute java code before rendering the page

    Hi,
    In a task flow, can I execute some java code before the page/view is rendered (i.e. some preprocessing). I would need to be able to have access to the bindings on the page.
    Thanks!

    Can you try doing as specified below:
    If it is simple JSPX, you could use the phase listener as follows:
    JSPX Code:
    <f:view beforePhase="#{SamplePageBean.phaseListener}">
    <af:document id="d1">
    <af:form id="f1">
    <af:panelFormLayout id="pfl1">
    <f:facet name="footer"/>
    </af:panelFormLayout>
    </af:form>
    </af:document>
    </f:view>
    Bean Code:
    public class SamplePageBean {
    public SamplePageBean() {
    public void phaseListener(PhaseEvent phaseEvent) {
    if (phaseEvent.getPhaseId().equals(phaseEvent.getPhaseId().RENDER_RESPONSE)) {
    // DO NECESSARY INITIALIZATION
    Thanks,
    Navaneeth

  • JNI Calling Java code when attaching to existing JVM

    I've got an Active/X that runs within IE, and also makes JNI calls (via the Invocation API) to Java code. Running within IE means there's already a JVM around, so I attach to it using JNI_GetCreatedJavaVMs
    This is fine. The problem is that I can't use the JNI findClass() to locate my Java classes, because I have no control over the classpath that the JVM is using to locate classes. The only solution I can think of so far is to either add my classes as part of the JVM, OR find out the classpath of the existing JVM (using System.getProperty("java.class.path") and copy my classes into that directory.
    Both solutions look ugly - anyone know of a cleaner way ?
    Mark.

    Toby, thanks for the reply.
    You're welcome.
    I notice from elsewhere on this forum, you're clearly a JNI expert.
    I've been known to work with it a little from time to time. =)
    My code has to work with JDK 1.1 so URLClassLoader is out. Writing my own classloader is fine, but how do I load it in the first place ? Is there something in JNI I've missed ?
    Possibly. Using DefineClass() you can load a class into the virtual machine, given it's byte-code. Now here's the tricky part. First, write your ClassLoader. It will be easiest if it doesn't rely on any other classes other than what is core to the JRE. Once you compile that classloader, you then need to include the bytecode as a resource in your executable/dll. Then, at runtime, you can load that resource, and use DefineClass to class-load it. Once you've class-loaded it, you can use NewObject, GetMethodID, CallXXXMethod, etc... to do the other class loading you need to do.
    Trust me, this really isn't as hard as it might sound.
    God bless,
    -Toby Reyelts
    As always, I recommend you check out the free, open-source JNI toolkit, Jace, at http://jace.reyelts.com/jace.

  • Handling events from native objects in Java code - Code from Sachin Agrawal

    Hi All,
    I�ve been studing this example in http://www.ibm.com/developerworks/java/library/j-jniobs/ , so I find it so interesting to be used on programs, but I'm just a starter programmer when we talk about JNI.
    I hope that some good soul will tell me how I use it in java.
    Let me explain better.
    In this example, a main.exe it's the reponsible to call the entire program, java and C. I want to use this code, but, In java. Or better, I wanna know what I have to change, to call it from my Java code...
    for example, I've tryed this:
    package events;
    import javax.swing.JFrame;
    public class MouseDownListener extends JFrame implements IJMouseDownListener {
         EventSourceProxy _proxy;
         IJMouseDownListener _listener;
         public MouseDownListener(int handleEventSource) {
              _proxy = EventSourceProxy.get(handleEventSource);
              if (null == _proxy) {
                   return;
              _listener = new IJMouseDownListener() {
                   public void onMouseDown(int hPos, int vPos) {
                        System.out.println("In MouseDownListener.onMouseDown");
                        System.out.println("     X = " + String.valueOf(hPos));
                        System.out.println("     Y = " + String.valueOf(vPos));
              _proxy.addMouseDownListener(_listener);
         public void release() {
              _proxy.removeMouseDownListener(_listener);
              _listener = null;
              _proxy = null;
             public void onMouseDown(int x, int y){
            System.out.println(x + "-" +y );
         public static void main(String[] argv) {
              MouseDownListener listener = new MouseDownListener(0);
                    listener.setVisible(true);
    }but doesn�t work.
    Thanks for your help!

    Jschell Hello,
    I really think that I was not very clear in my question.
    Sorry about my very bad English.
    In the example linked, there is a file main.cpp that starts the program:
    // Defines the entry point
    #include "EventSource.h"
    #include "MouseDownListener.h"
    #include "Jvm.h"
    #include <process.h>
    #include <windows.h>
    void __cdecl ThreadMain(void * pSource)
         ((CEventSource *)pSource)->fireMouseDownEvent(50, 100);
         CJvm::DetachThread();
    int main(int argc, char* argv[])
         CEventSource eventSource;
         CMouseDownListener listener;
         eventSource.addMouseDownListener(&listener);
         CJvm::CreateJVM(argc-1, &argv[1]);
         jobject jobj = CJvm::CreateJavaObject("events/MouseDownListener", (int)(IEventSource *)&eventSource);
         _beginthread(ThreadMain, 0, &eventSource);
         Sleep(2000);
         CJvm::ReleaseJObject(jobj);
         CJvm::DestroyJVM();
         return 0;
    }And the command line to execute all the thing is
    main.exe "-Djava.class.path=.\\java\\bin"
    "-Djava.library.path=.\\cpp\\listener\\Debug"and the result in a dos prompt is:
    In CMouseDownListener::onMouseDown
    X = 50
    Y = 100
    In MouseDownListener.onMouseDown
    X = 50
    Y = 100
    According to the example, this code main.cpp, calls the Java classes too:
    EventSourceProxy.java, IJMouseDownListener.java, MouseDownListener.java.
    But, I want to modify it so that I can start my program directly from within Java in a way that I start the program with something like
    "Main java," plus the required parameters, and can thus manipulate the results obtained through the java.
    In short, I wanted to translate the main.cpp for Java, so I have a main class in Java that start the program, call the listener.dll through JNI, take the position of the mouse, and return to my program in Java.
    If you or someone else can help me,'ll be very grateful.
    Tkd,
    Dino

  • Executing system commands like cd on Linux from Java Code

    Hi,
    I need to execute a few system commands (like cd, ls, tar, etc.,) on RedHat Linux 7.1 from Java code. Any ideas plz.
    best wishes,
    Issac

    Since this thread mentioned using the DOS START command
    from an exec(), I was wondering whether anyone else is
    seeing the odd behavior I am.
    Most of the examples showing how to read stdout and stderr
    while the process is running show simple loops that use
    getInputStream and getErrorStream and do read's until they
    get back -1. Most of these examples are insensitive to the
    state of the Process.waitFor that happens elsewhere and sort
    of rely on the -1 and the waitFor happening roughly together.
    Whenever I use this technique to launch an arbitrary DOS
    command (e.g. Runtime.exec("dir")), it works fine, and
    everything seems to terminate as expected.
    However, when my command is something like:
    Runtime.exec("cmd /c start my.bat")
    where I deliberately use the START command to fork off
    a different process, something odd happens.
    Those simple read loops get an initial burst of stdout/stderr
    bytes from the "start" part of the command. But then eventually,
    these loops do a "read" which blocks on those InputStreams. Now,
    even if my Process.waitFor returns (because the start returned
    immediately), those read loops stay blocked **until that script
    started by 'start' runs to completion**. It is like the child
    of the child is holding those streams open somehow.
    I found that by doing something like an InputStream.available() or
    a BufferedReader.ready( ) check before dropping into the read,
    and allowing the Process.waitFor completion to exit those read loops,
    them I get what I expect -- namely immediate return from the START,
    but apparently complete copies of stdout and stderr.
    Curiously, in the case where the reads block until the child process
    started by START terminates, they still don't get the child's/child's
    stdout and stderr. It is just a long duration thread block that
    yields no data.
    Can anyone explain what is happening to a
    Process.getInputStream( ).read()
    when the process immediately does a START and returns? Why would
    the read( ) stay blocked when the START finished launching a new child
    process?
    ... ron cain

  • Executing an hp unix command by using java code

    i'm trying to execut the "chmod" command on my jsp as follows :
    String cmd = "chmod 644 "+fileName;
    Process process;
    process=Runtime.getRuntime().exec(cmd);
    but i got the following exception:
    java.io.IOException: chmod: not found
         at java.lang.UNIXProcess.forkAndExec(Native Method)
         at java.lang.UNIXProcess.<init>(UNIXProcess.java:86)
         at java.lang.Runtime.execInternal(Native Method)
         at java.lang.Runtime.exec(Unknown Source)
         at java.lang.Runtime.exec(Unknown Source)
         at java.lang.Runtime.addShutdownHook(Unknown Source)
         at java.lang.Runtime.addShutdownHook(Unknown Source)
         at receiveJobAppInput.jspService(_receiveJobAppInput.java:358)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java, Compiled Code)
         at oracle.jsp.runtimev2.JspPageTable.compileAndServe(JspPageTable.java, Compiled Code)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java, Compiled Code)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java, Compiled Code)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java, Compiled Code)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java, Compiled Code)
         at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java, Compiled Code)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java, Compiled Code)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java, Compiled Code)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java, Compiled Code)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java, Compiled Code)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java, Compiled Code)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java, Compiled Code)
         at java.lang.Thread.run(Unknown Source)
    can anyone give me a hint why this happend?

    What about exec'ing this?
    String [] {"chmod" ,"644" , "fileName" }

  • Error: ORA-03113 while executing complex java code from Oracle PL/SQL

    Hi,
    I am trying to execute a complex java code from Oracle PL/SQL. The classes were resolved successfully. But in the middle of execution, I am getting the following error:
    ERROR:
    ORA-03114: not connected to ORACLE
    begin
    ERROR at line 1:
    ORA-03113: end-of-file on communication channel
    Process ID: 13685
    Session ID: 21 Serial number: 20
    Is there a way to debug the Java classes loaded into oracle? Or is there any utility to find out why the connection was lost?
    Regards,
    Saravana

    Hi Saravana:
    You could use simply System.out.println(..) at your Java code and see the output at the .trc files generated for your Oracle session.
    Or better than this adding Java Util Logging messages at your code, to see how to use JUL API at the OJVM please see this blog post [Using JUL API inside the OJVM|http://marceloochoa.blogspot.com/2007/11/getting-logging-entering-exiting-and.html].
    Best regards, Marcelo.
    PD: ora-0600 generally are associated with RDBMS bugs, but these bugs can be bypassed by replacing the code which throws the exception by other with a workaround.

  • 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.

  • How Can I execute a java program using java code?

    {color:#000000}Hello,
    i am in great trouble someone please help me. i want to execute java program through java code i have compiled the java class using Compiler API now i want to execute this Class file through java code please help me, thanks in advance
    {color}

    Thanks Manko.
    i think my question was not clear enough.. actually i want to run this class using some java code . like any IDE would do i am making a text editor for java, as my term project i have been able to complie the code usign compiler api and it genertaes the class file but now i want to run this class file "THROUGH JAVA CODE" instead of using Java command. I want to achive it programatically. do you have any idea about it.. thanks in advance

  • Java code to invoke a native library in a Resource Adapter

    Have any of you done the project on invoking a native library in a Resource Adapter that you could share some experience/tips? Thanks

    Hi Frances,
    I haven't yet done anything in this area, but I should be rather staright forward in following the related manuals:
    Configuring the Use of Resource Adapter Native Libraries
    http://download-uk.oracle.com/docs/cd/B31017_01/web.1013/b28956/adminra.htm#CACJAJHC
    The oc4j-connectors.xml File <security-permission> Element
    http://download-uk.oracle.com/docs/cd/B31017_01/web.1013/b28957/jcacontinued.htm#CHDHFEDA
    BTW: as far as I can see (haven't read the whole manual) the most important point isn't addressed in this manual: to make the native code available in your Java code, you have to load the native library with a code line like:
    System.loadLibrary("....");
    or
    Runtime.getRuntime().loadLibrary("...");
    This code line is a very critical one, because you can call it only ONCE for a native library during the runtime of a JVM.
    From the Runtime.loadLibrary JavaDoc:
    If this method is called more than once with the same library name, the second and subsequent calls are ignored.
    This statement is also true for calls in different ClassLoaders!
    Best,
    Manfred

  • Executing a DDL statement from java code

    Hi all,
    this is code from jdev11.1.1.3 version. I am trying to execute a DDL statement in oracle db from java code, but "ORA-00900: invalid SQL statement" error is coming.
    I am trying to create a table in same schema in same db by using 'Copy' command.
    Same DDL command is executing from sql command prompt & table is being created. Plz help me , as how to do from java?
            public String cmb_action() {
            // Add event code here...
            try {
                //getting source db connection
                InitialContext initialContext = new InitialContext();
                DataSource ds = (DataSource) initialContext.lookup("java:comp/env/jdbc/SourceConnDS");
                Connection sourceconn = ds.getConnection();
                sourceconn.setAutoCommit(false);
                String sql = "Copy from myschema/mypass@DB insert t_dept using select * from dept;"                       
                Statement stat = sourceconn.createStatement();
                stat.executeUpdate(sql);
                sourceconn.commit();
                System.out.println("done");
              catch (Exception ne) {
                // TODO: Add catch code
                ne.printStackTrace();
            return null;
        }

    I have a requirement to transfer data from one db to another db from Java Application Layer.Maybe, maye not. We get all sorts of weird "requirements" - which are nothing but thoughts or proposed solutions.
    But,
    Did the "requirement" mention whether the table existed already or not in the target database? - If not, did it tell you to create it - drop/create it?
    Did the "requirement" deliver some explanation to why this copying was neeeded? - Are we talking replication? - Or a one time cloning?
    Etc, etc,
    Personally I would always argue against a "reuirement" like that. - It just isn't the way to do it. Period.
    Regards
    Peter
    P.S: If you are satisfied with what COPY does, then you could let Java make an OS call and do it from there?

  • Java.lang.NoClassDefFoundError when executing JAVA code

    Hy everyone,
    Trying to execute some java code through forms I got this error when running my program : java.lang.NoClassDefFoundError : simple (where simple is a java class I developped).
    These are the steps I followed:
    1- Devopping a simple JAVA class (simple.java) and compiling in JDK 1.4 (for compatibilty with forms 10.1.2.0.2)
    2- Creating the JAR file
    3- Copying the JAR file in <ORACLE_HOME>\forms\java
    4- Adding the adress of the JAR file in CLASSPATH (environment variable of the server)
    5- Adding the adress of the JAR file in CLASSPATH (environmental file of OAS default.env)
    6- Importing the JAVA class trought forms builder (program>>import java class)
    7- Invoking the JAVA class via the PL/SQL packages created by forms builder
    8- Running the program
    Thanks for your help.
    Regards.

    In most cases, you should not have to stop and restart OC4J_BI_FORMS to pick such changes. However, since you are having problems, I would ensure that all frmweb processes have been stopped, then stop and restart OC4J_BI_FORMS and retest. If that doesn't work, you should review how you imported the java into your app. Look closely at the Importer options you used and ensure that you have not change the file name at any point. Because you are working with Java, case sensitivity is critical.
    Also, where are you seeing the error message? Client java console or in a server side log? If server side, exactly which log file is reporting the problem? I would suggest you post the first 4 ro 5 lines of the error and not just the NoClassDefFound part.

  • Execute PL/SQL block with named binds from within java code?

    Hi guys,
    Is there any good way to execute my PL/SQL code, for example
    BEGIN         :x := :x+1; END;
    from my Java code? I need nothing complicated, just static code block with named binds.
    I have tried the Oracle exetnded JDBC (setXXXbyName methods):
      public static void main(String[] args){     try {     Class.forName("oracle.jdbc.driver.OracleConnection");     Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","user","password"); String SQL="begin :x:=:x+1; end;"; OracleCallableStatement stmt; stmt=(OracleCallableStatement)conn.prepareCall(SQL); stmt.setIntAtName("x", 5); stmt.registerOutParameter("x", Types.INTEGER); stmt.execute(); System.out.println(stmt.getInt("x"));     } catch (Exception x) { x.printStackTrace();    }   }
    And get the java.sql.SQLException: operation not allowed: Ordinal binding and Named binding cannot be combined!
    Then i've tried SQLJ appoach:
      public static void main(String[] args){     try {     Class.forName("oracle.jdbc.driver.OracleConnection");     Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","user","password");       Oracle.connect(conn);       System.out.println("Connected!");           int x=3;       #sql { BEGIN         :x := :x+1;       END; };           System.out.println("x=" + x);     } catch (Exception x) { x.printStackTrace();    }   }
    And x=3 had retuned... Although 4 expected.
    Then, I've set parameter sqlj.bind-by-identifier=true
    And result is another exception! java.sql.SQLException: Missing IN or OUT parameter at index:: 2
    Can you please mark my mistakes/point to correct solution?
    Thanks in advance,
    Alexey

    Found another solution, this time working at least...
      public void testPLSQL() {
           String dynamicSQL=
                "declare\n" +
                "  v_CursorID  INTEGER;\n" +
                "  v_BlockStr  VARCHAR2(500);\n" +
                "  v_Dummy     INTEGER;\n" +
                "  v_x         String(18);\n" +
                "BEGIN\n" +
                "  v_CursorID := DBMS_SQL.OPEN_CURSOR;\n" +
                "  v_BlockStr :=?;" +
                "  DBMS_SQL.PARSE(v_CursorID, v_BlockStr, DBMS_SQL.V7);\n" +
                "  v_x:=?;"+
                "  DBMS_SQL.BIND_VARIABLE(v_CursorID, ':x', v_x,18);\n" +
                "  v_Dummy := DBMS_SQL.EXECUTE(v_CursorID);\n" +
                "  DBMS_SQL.VARIABLE_VALUE(v_CursorID, ':x', v_x);\n" +
                "  DBMS_SQL.CLOSE_CURSOR(v_CursorID);\n" +
                "  ?:=v_x;"+
                "  COMMIT;\n" +
                "EXCEPTION\n" +
                "  WHEN OTHERS THEN\n" +
                "    DBMS_SQL.CLOSE_CURSOR(v_CursorID);\n" +
                "    RAISE;\n" +
                "END DynamicPLSQL;";
             try {
                   Class.forName("oracle.jdbc.driver.OracleConnection");
                   Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","user", "password");
                   System.out.println("Profit");
         String SQL="begin :x:=:x+1; end;";
         OracleCallableStatement stmt;
         stmt=(OracleCallableStatement)conn.prepareCall(dynamicSQL);
         stmt.setString(1, SQL);
         int x=3;
         stmt.setInt(2, x);
         stmt.registerOutParameter(3,     Types.INTEGER);
         stmt.execute();
         x=stmt.getInt(3);
         System.out.println(x);
         assertEquals(4, x);
             } catch (Exception ex) {
                  ex.printStackTrace();
                  assertTrue(false);
      }Now the only thing I need is to code some kind of preprocessor of SQL block, to prepare the dynamicSQL lair for SQL critter...
    Please please please show me something less complicated! :8}

  • Executing Java Code in ODI Procedure

    Hi All,
    I have following  java code which i need to write on ODI procedure but i am not sure which technology to chose (Jython,Sunopsis API or Java BeanShell).
    I tried to execute the procedure Jyhton with <% "Java code"%> but getting the error.Any boddy can suggest where i doing wrong.
    <%
    import javax.naming.Context;
    import javax.naming.NamingEnumeration;
    import javax.naming.directory.*;
    import java.util.Hashtable;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    String userName = "HXXXXXX";
    String CN1=null;
    String Dis_Name=null;
    String Mem_of=null;
    String Mail=null;
    String SGID=null;
    File file = new File("C:/Project/ODI/LDAPID.txt");
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.PROVIDER_URL, "LDAP://XX.if.YYYY.net:389/OU=XYZ,DC=ZZ,DC=if,DC=XYZ,DC=COM");
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, new String("" + "\\" + userName));
    env.put(Context.SECURITY_CREDENTIALS, "");
    DirContext ctx = null;
    NamingEnumeration results = null;
    ctx = new InitialDirContext(env);
    SearchControls controls = new SearchControls();
    controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
    results = ctx.search("", "(objectclass=person)", controls);
    FileWriter fw = new FileWriter(file.getAbsoluteFile());
    BufferedWriter bw = new BufferedWriter(fw);
       while (results.hasMore())
             SearchResult searchResult = (SearchResult) results.next();
             Attributes attributes = searchResult.getAttributes();
             Attribute attr = attributes.get("cn");
             String cn = (String) attr.get();
             CN1=(String.valueOf(attributes.get("cn")));
             Dis_Name=(String.valueOf(attributes.get("displayName")));
             SGID=(String.valueOf(attributes.get("userPrincipalName")));
             Mem_of=(String.valueOf(attributes.get("memberOf")));
             Mail=(String.valueOf(attributes.get("mail")));
             bw.write(CN1 + " || " + Dis_Name + " || " + SGID + " || " + Mail);
             bw.newLine();
    bw.close();
    results.close();
    ctx.close();
    %>
    I am getting following error.
    The application script threw an exception: java.lang.NullPointerException BSF info: CODE_JAVA at line: 0 column: columnNo
    Please suggest what went wrong with the code.
    Thanks
    Regards

    In Jython you don not need to declare the type so String userName = "HXXXXXX"; should simply read userName = "HXXXXXX" . Lots of your code need to be rewritten to work with Jython if you choose that as your technology.

  • How to call Java script from java code?Can Jscript be executed at server?

    Hi All,
    We are using 'WebTrends' tool to analyze our site usage pattern.
    To use WebTrends, we need to :
    1) call Java Script code from the java code
    2)Java script has to be executed at server.
    Please comment on two points mentioned above. If yes, please let me know how to do them?
    Thanks in advnce,
    Regards,
    Ganga

    You can check out Rhino project.
    [http://www.mozilla.org/rhino/]

Maybe you are looking for

  • How do I change the Apple ID on my iPhone 6+ that is used by another device?

    I set up my Apple ID on my husband's iPhone 4s and now he has his own Apple ID. We both upgraded to the iPhone 6+ but he gets my texts etc. I have signed him in iCloud with his account and fixed the text issue. Is there a way to REMOVE my Apple ID an

  • ITunes account for minors ?

    Is there any way possible to create an iTunes account for minors ? I was thinking of one that will allow them to download free songs, but not make purchases. I was thinking of creating an account without a credit card information. Would this be the o

  • Where do I get Server 10.8 App

    I had to blow my Mini away and do a clean install. I followed the directions but it didn't install Server, which came with the Mini. Since it didn't come with Disks (or a disk drive) all of the forums say download it from the App Store. The App Store

  • Possible Bug in Facebook Upload Program

    I have been using Aperture for quite some time now and think that I have found an obscure bug.  I took some photos over the weekend and one of them was a picture of an owl.  The eyes were red, so I used the red-eye removal feature to correct this pro

  • What is left join /right join / out join/ inner join/please give example!

    what is left join /right join / out join/ inner join/please give example! thanks