Using JNI for Perl

Hi all,
I am new to the native methods (JNI) thing. The examples I am finding are mostly for C/C++ although they say native calls work with every language. I have the following questions:
- Are there any tutorials, sample codes that call modules written in Perl?
- Can I easily avoid touching the Perl code, since it is an already existing API, and I just want to wrap it with Java.
- Is it very slow? And is it a big learning curve (i.e. native calls) if I already know java and use it regularly? Note that I do not know Perl, and I want to avoid changing any of its code.
Thanks,

Not quite sure what you are asking.
There is only one external interface in Java. That involves C method calls in a shared library.
- Are there any tutorials, sample codes that call modules written in Perl?Well there are certainly many written in perl. Not that that has anything to do with Java. You can call Perl in C/C++. The documentation is sparse (although better than it use to be.) For information on that you need to try other lists/forums.
- Can I easily avoid touching the Perl code, since it is an already existing API, and I just want to wrap it with Java.Yes and no. Since Java doesn't talk to perl you don't have to modify anything in perl. And if you had a C interface you wouldn't have to modify the perl either.
- Is it very slow? And is it a big learning curve (i.e. native calls) if I already know java and use it regularly?Do you use C regularly? If not then it is going to take you a while.
Slow is relative. Both languages are interpreted so the start up costs are rather heavy.
Are you sure you can't just call a perl application, using java Runtime.exec()?
There was a JPerl initiative which would have done everything (Java to Perl and Perl to Java.) Last time I looked it really wasn't going anywhere.

Similar Messages

  • How to Use JNI for linux based C programs

    Hi all,
    I am doing my project in JAVA for my Institute. There is a Central server. All the API's have written in C. The C APIs are Linux based.
    The problem is getting records from the database through API.
    I tried the Java Native Methods. I am able to do that in console with out problem. Since my project is web based I want to fetch the records through the C APIs in JSP. Is it possible? How to do that?
    Please Help me.
    -Prathap

    Why can't you use JDBC?
    I tried the Java Native Methods. I am able to do that in console with out problem. Since my project is web based I want to fetch the records through the C APIs in JSP. Is it possible? How to do that?JSP runs in a server. Which is just a big console application. Same as any other.
    Basic process.
    1. Write the JNI
    2. Insure the JNI is in the servers shared library path. This can depend on the user that the server runs under (unlikely to be you.)
    3. Add the java code into the server.

  • Xgettext for perl and shell scripts on Solaris 9

    Hi......I have to internationalized perl and shell scripts on Linux and Solaris 9.
    I have used gettext on linux to internationalized both perl and shell scripts but on solaris i m not able to
    achieve the same.
    If we see help of xgettect on Linux, it shows input file options for Perl, Shell, C, C++ etc but help for
    xgettext on Solaris shows input file option for C only.
    Can you please provide me some way of using xgettext for perl and shell scripts on Solaris 9 or
    is there any other way of internationalizing perl and shell scripts on Solaris 9.
    Many Thanks,
    Lokesh

    Signature link blocked.
    db
    Contentprise wrote:
    Hi......I have to internationalized perl and shell scripts on Linux and Solaris 9.
    I have used gettext on linux to internationalized both perl and shell scripts but on solaris i m not able to
    achieve the same.
    If we see help of xgettect on Linux, it shows input file options for Perl, Shell, C, C++ etc but help for
    xgettext on Solaris shows input file option for C only.
    Can you please provide me some way of using xgettext for perl and shell scripts on Solaris 9 or
    is there any other way of internationalizing perl and shell scripts on Solaris 9.
    Many Thanks

  • Under this condition, can I use JNI?

    Hi everyone,
    I am planning to use JNI for a project, but I only have several DLLs (no source code for them, but only have header file for these DLLs). Can I use JNI to invoke methods in these DLLs directly? Examples in internet are making me believe that I have to use javah to create a header first, and compile this header with C/C++ source code into new DLLs, and then my methods in Java can use methods in DLLs. Am I right?

    O, getting understand that I have to write a C/C++ wrapper to make it work. Is there any one who has a small sample to show me how to write a C++ wrapper? Thanks a lot!

  • Guidelines for when to use JNI

    I didn't find an answer to this in any FAQ or the 2 JNI books I have, so apologies in advance if this is a common question whose answer has already been posted -
    Do any guidelines exist for when, and to what extent, JNI should be used?
    I'm currently working on my second project where the question of whether or not to use it has come up. Both projects were distributed and contained both C++ and Java code in different areas. The issue came up when the need arose to implement a new shared library that had to be used by both C++ and Java code. Logging and configuration services are examples of the new functionality.
    The choice is whether to implement the new libraries primarily in C++ and supply a Java interface, via JNI, for Java code which needs to use it, or to implement the new libraries in both C++ and Java to support both types of clients.
    On the previous project, a team member had extensive JNI experience and recommended the dual language implementation approach instead of JNI. This worked out ok except we did have to have to ensure the new library developer was skilled in both C++ and Java, and he had to be sure to update both when changes to 1 were necessary - a maintenance problem. The experienced JNI developer made this recommendation due to issues he had encountered previously - most notably issues related to errors in the native code which brought down the JVM.
    On the current project, we're opting for base C++ implementations with JNI wrappers. That's making me somewhat nervous since the alternative seems safer.
    What do other developers think?

    Have you checked out www.javaworld.com. They usually have very good and in-depth articles. IMHO, it all depends on the sort of use your library is intended for. If its used extensively by native code, use C++ with a Java wrapper. It its the other way around, implement it in Java and use a JNI interface for native code. I would really consider this carefully before implementing stuff in C++ that is used from Java. First of all, Java is after all much simpler than C++, its a more elgant OO-language and you have the platform neutrality. On the other hand, C++ has its sides. I dont use JNI unless its absolutely neccessary, in situations like using legacy code.
    These are just a few of my thoughts, hope it gives you some hints.

  • How can I use JDesktopPane for storing components?

    Hi there!
    I want to write an app which uses JNI, but I need to store widgets into the JDesktopPane , so that this Pane is always visible, not minimazable and has no decoration.
    Is this possible at all, because as far as I know .add(Component c) only adds new JInternalFrames?
    Or is this possible with an JInternal Frame to use all the space, being always in background and to have no Windows-Decorations (above the JInternal Frame)
    I hope you can help my,thanks for reading!
    Mfg Clemens

    Why do you need to use a JDesktopPane? If all you want is a pane with components on (no menu bar, title bar etc) then you can use a JWindow.
    N35Sy

  • JVM Crash When Using JNI and COM

    I'm trying to call a DLL compiled from VB6 source code that I do not have access to. The VB6 code simply retrieves data from a DB2 database using ADO and my client code grabs that data and marshals it to my Java code. I'm attempting to achieve this using JNI and COM (without a third-party bridge). It works 75% of the time, but the other 25% of the time, the JVM crashes with the usual Hotspot crash log containing an access violation exception. However, I don't know what in my C++ code (VC++ 8) could be causing this except for passing a "wild" pointer to the code lying underneath the COM object interface. If that is the case, I don't know how I am doing that.
    The Java code that is calling my native method is running on Tomcat 5.5.25 and just to be safe, I am not allowing multiple threads to concurrently call the method in my JNI DLL (though I realize that this will kill performance). Once I can get past this problem, I'll do the COM interfacing on a worker thread in my native code so I don't screw up CoInitialize and CoUninitialize calls in the case the same thread is concurrently executing multiple calls to my native code.
    I've noticed that in most cases, the JVM crashes during my call to the pClsAccount->OpenConnection method. However, my DLL isn't what is listed on the top of the call stack, which is why I suspect the passing of a wild pointer, though I'm just taking a guess at that. Does anyone have an idea as to what's going on ?
    JNIEXPORT jobject JNICALL Java_CustomerInfo_nGetCustomerAccountInfo(JNIEnv *env, jobject customerInfo, jstring accountNumber, jstring iniFileName)
    jboolean isCopy;
    // Account info class and instance to be instantiated
    jclass accountInfoCls = NULL;
    jobject accountInfoObj = NULL;
    // The constructor ID of the accountInfoCls
    jmethodID ctorID = NULL;
    // Pointer to the interface for the ClsAccount COM object
    _clsAccount *pClsAccount = NULL;
    HRESULT hr;
    BSTR bstrIniFileName(L"");
    try
    const char *nativeAccountNumber = NULL;
    if (accountNumber != NULL)
    nativeAccountNumber = env->GetStringUTFChars(accountNumber, &isCopy);
    else
    jclass newExcCls;
    env->ExceptionDescribe();
    env->ExceptionClear();
    newExcCls = env->FindClass("java/lang/IllegalArgumentException");
    env->ThrowNew(newExcCls, "accountNumber passed in was null !");
    return NULL;
    // Initialization
    variantt varConnectionSucceeded = variantt(false);
    variantt varGetAccountInfoSucceeded = variantt(false);
    variantt varAccountNumber = variantt(nativeAccountNumber);
    bstrt bstrLastPaymentDate = bstrt();
    bstrt bstrLastErrorMessage = bstrt();
    bstrt bstrLastErrorNumber = bstrt();
    jlong jTotalDue = NULL;
    jlong jEstablishedDueDay = NULL;
    jlong jLastPaymentAmount = NULL;
    jstring jLastPaymentDate = NULL;
    jstring jLastErrorMessage = NULL;
    jstring jLastErrorNumber = NULL;
    jthrowable jException = NULL;
    const char *chLastPaymentDate = NULL;
    const char *chLastErrorMessage = NULL;
    const char *chLastErrorNumber = NULL;
    long long totalDue;
    long long lastPaymentAmount;
    long establishedDueDateDay;
    //Convert string from Java string to C string to VB string
    const char *nativeIniFileName = NULL;
    if (iniFileName != NULL)
    nativeIniFileName = env->GetStringUTFChars(iniFileName, &isCopy);
    else
    jclass newExcCls;
    env->ExceptionDescribe();
    env->ExceptionClear();
    newExcCls = env->FindClass("java/lang/IllegalArgumentException");
    env->ThrowNew(newExcCls, "iniFileName passed in was null");
    return NULL;
    bstrIniFileName = comutil::ConvertStringToBSTR(nativeIniFileName);
    CoInitialize(NULL);
    // Create an instance of the COClass with the interface over it
    hr = CoCreateInstance(__uuidof(clsAccount), NULL, CLSCTX_INPROC_SERVER, __uuidof(_clsAccount), (void **)&pClsAccount);
    if (hr == S_OK)
    varConnectionSucceeded.boolVal = pClsAccount->OpenConnection(&bstrIniFileName);
     
    if (varConnectionSucceeded.boolVal == -1)
    varGetAccountInfoSucceeded.boolVal = pClsAccount->GetAccountPaymentInformation(&(varAccountNumber.GetVARIANT()));
    env->ReleaseStringUTFChars(accountNumber, nativeAccountNumber);
    // Extract all available account information from the ClsAccount object
    if (varGetAccountInfoSucceeded.boolVal == -1)
    totalDue = pClsAccount->TotalDue.int64;
    establishedDueDateDay = pClsAccount->EstablishedDueDateDay;
    lastPaymentAmount = pClsAccount->LastPaymentAmount.int64;
    bstrLastPaymentDate = pClsAccount->LastPaymentDate;
    chLastPaymentDate = comutil::ConvertBSTRToString(bstrLastPaymentDate.GetBSTR());
    jTotalDue = (jlong)totalDue;
    jEstablishedDueDay = (jlong)establishedDueDateDay;
    jLastPaymentAmount = (jlong)lastPaymentAmount;
    jLastPaymentDate = env->NewStringUTF(chLastPaymentDate);
    delete[] chLastPaymentDate;
    pClsAccount->CloseConnection();
    // Populate error fields if any errors occur
    bstrLastErrorMessage = pClsAccount->LastErrMessage;
    chLastErrorMessage = comutil::ConvertBSTRToString(bstrLastErrorMessage.GetBSTR());
    bstrLastErrorNumber = pClsAccount->LastErrNumber;
    chLastErrorNumber = comutil::ConvertBSTRToString(bstrLastErrorNumber.GetBSTR());
    jLastErrorMessage = env->NewStringUTF(chLastErrorMessage);
    jLastErrorNumber = env->NewStringUTF(chLastErrorNumber);
    delete[] chLastErrorMessage;
    delete[] chLastErrorNumber;
    const char* clsName = "com/nuance/merchantsmutual/businessentities/CustomerAccountInfo";
    // Find the Java class and the ID of its constructor
    accountInfoCls = env->FindClass(clsName);
    ctorID = env->GetMethodID(accountInfoCls, "<init>", "(JJJLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");
    jException = env->ExceptionOccurred();
    if (jException != NULL)
    env->ExceptionDescribe();
    env->ExceptionClear();
    //Release all resources associated with the ClsAccount instance
    pClsAccount->Release();
    //Instantiate the class with the given parameters
    accountInfoObj = env->NewObject(accountInfoCls, ctorID, jTotalDue, jEstablishedDueDay, jLastPaymentAmount, jLastPaymentDate, jLastErrorMessage, jLastErrorNumber);
    jException = env->ExceptionOccurred();
    if (jException != NULL)
    env->ExceptionDescribe();
    env->ExceptionClear();
    else if (hr == REGDB_E_CLASSNOTREG)
    cout << "COM class not registered" << endl;
    else if ( hr == CLASS_E_NOAGGREGATION)
    cout << "COM class can't be aggregated" << endl;
    else if (hr == E_NOINTERFACE)
    cout << "No interface for COM class clsAccount" << endl;
    else if (hr == E_POINTER)
    cout << "*ppv pointer was NULL !" << endl;
    else
    cout << "Error occurred while creating COM object. HR is [" << hr << "]" << endl;
    // Free the BSTR because a new one was returned with a call to comutil::ConvertStringToBSTR
    SysFreeString(bstrIniFileName);
    // Release the string when it's no longer needed. MUST call if string won't be used
    // anymore or else a memory leak will occur
    env->ReleaseStringUTFChars(iniFileName, nativeIniFileName);
    CoUninitialize();
    &#12288;
    catch (_com_error &e)
    cout << "Encountered an exception in GetCustomerAccountInfo: Error was " << e.ErrorMessage();
    pClsAccount->Release();
    catch (...)
    pClsAccount->Release();
    return accountInfoObj;
    Edited by: Cthulhu76 on Jan 5, 2010 9:18 AM

    0x49202400 JavaThread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" daemon [_thread_blocked, id=5340, stack(0x49bf0000,0x49c40000)]
    0x48a7e800 JavaThread "Thread-1" [_thread_in_native, id=5976, stack(0x48f00000,0x48f50000)]
    0x48a0dc00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=3072, stack(0x48c60000,0x48cb0000)]
    0x48a09000 JavaThread "CompilerThread0" daemon [_thread_blocked, id=4988, stack(0x48c10000,0x48c60000)]
    0x48a07c00 JavaThread "Attach Listener" daemon [_thread_blocked, id=3124, stack(0x48bc0000,0x48c10000)]
    0x48a07000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2572, stack(0x48b70000,0x48bc0000)]
    0x489f5c00 JavaThread "Finalizer" daemon [_thread_blocked, id=5752, stack(0x48b20000,0x48b70000)]
    0x489f4c00 JavaThread "Reference Handler" daemon [_thread_blocked, id=2596, stack(0x48ad0000,0x48b20000)]
    0x003c6000 JavaThread "main" [_thread_in_native, id=4252, stack(0x00820000,0x00870000)]
    Other Threads:
    0x489f0400 VMThread [stack: 0x48a80000,0x48ad0000] [id=5624]
    0x48a18800 WatcherThread [stack: 0x48cb0000,0x48d00000] [id=1192]
    VM state:not at safepoint (normal execution)
    VM Mutex/Monitor currently owned by a thread: None
    Heap
    def new generation total 36288K, used 12762K [0x02940000, 0x050a0000, 0x07800000)
    eden space 32256K, 34% used [0x02940000, 0x0343af58, 0x048c0000)
    from space 4032K, 37% used [0x04cb0000, 0x04e2ba28, 0x050a0000)
    to space 4032K, 0% used [0x048c0000, 0x048c0000, 0x04cb0000)
    tenured generation total 483968K, used 7518K [0x07800000, 0x250a0000, 0x42940000)
    the space 483968K, 1% used [0x07800000, 0x07f57958, 0x07f57a00, 0x250a0000)
    compacting perm gen total 14080K, used 14016K [0x42940000, 0x43700000, 0x46940000)
    the space 14080K, 99% used [0x42940000, 0x436f0320, 0x436f0400, 0x43700000)
    No shared spaces configured.
    Dynamic libraries:
    0x00400000 - 0x0040f000      C:\Program Files\Apache Software Foundation\Tomcat 5.5\bin\tomcat5.exe
    0x7c800000 - 0x7c8c0000      C:\WINDOWS\system32\ntdll.dll
    0x77e40000 - 0x77f42000      C:\WINDOWS\system32\kernel32.dll
    0x77380000 - 0x77411000      C:\WINDOWS\system32\USER32.dll
    0x77c00000 - 0x77c48000      C:\WINDOWS\system32\GDI32.dll
    0x77f50000 - 0x77feb000      C:\WINDOWS\system32\ADVAPI32.dll
    0x77c50000 - 0x77cef000      C:\WINDOWS\system32\RPCRT4.dll
    0x76f50000 - 0x76f63000      C:\WINDOWS\system32\Secur32.dll
    0x77ba0000 - 0x77bfa000      C:\WINDOWS\system32\MSVCRT.dll
    0x7c8d0000 - 0x7d0cf000      C:\WINDOWS\system32\SHELL32.dll
    0x77da0000 - 0x77df2000      C:\WINDOWS\system32\SHLWAPI.dll
    0x76290000 - 0x762ad000      C:\WINDOWS\system32\IMM32.DLL
    0x77420000 - 0x77523000      C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.3790.3959_x-ww_D8713E55\comctl32.dll
    0x6d7c0000 - 0x6da10000      C:\Program Files\Java\jre1.6.0_07\bin\client\jvm.dll
    0x76aa0000 - 0x76acd000      C:\WINDOWS\system32\WINMM.dll
    0x7c340000 - 0x7c396000      C:\WINDOWS\system32\MSVCR71.dll
    0x6d270000 - 0x6d278000      C:\Program Files\Java\jre1.6.0_07\bin\hpi.dll
    0x76b70000 - 0x76b7b000      C:\WINDOWS\system32\PSAPI.DLL
    0x6d770000 - 0x6d77c000      C:\Program Files\Java\jre1.6.0_07\bin\verify.dll
    0x6d310000 - 0x6d32f000      C:\Program Files\Java\jre1.6.0_07\bin\java.dll
    0x6d7b0000 - 0x6d7bf000      C:\Program Files\Java\jre1.6.0_07\bin\zip.dll
    0x6d570000 - 0x6d583000      C:\Program Files\Java\jre1.6.0_07\bin\net.dll
    0x71c00000 - 0x71c17000      C:\WINDOWS\system32\WS2_32.dll
    0x71bf0000 - 0x71bf8000      C:\WINDOWS\system32\WS2HELP.dll
    0x71b20000 - 0x71b61000      C:\WINDOWS\system32\mswsock.dll
    0x5f270000 - 0x5f2ca000      C:\WINDOWS\system32\hnetcfg.dll
    0x71ae0000 - 0x71ae8000      C:\WINDOWS\System32\wshtcpip.dll
    0x76ed0000 - 0x76efa000      C:\WINDOWS\system32\DNSAPI.dll
    0x76f70000 - 0x76f77000      C:\WINDOWS\System32\winrnr.dll
    0x76f10000 - 0x76f3e000      C:\WINDOWS\system32\WLDAP32.dll
    0x76f80000 - 0x76f85000      C:\WINDOWS\system32\rasadhlp.dll
    0x4a6a0000 - 0x4a6ac000      C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\MMI\WEB-INF\lib\CustomerInfoProxy.dll
    0x77670000 - 0x777a9000      C:\WINDOWS\system32\ole32.dll
    0x77d00000 - 0x77d8b000      C:\WINDOWS\system32\OLEAUT32.dll
    0x7c420000 - 0x7c4a7000      C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_E6967989\MSVCP80.dll
    0x78130000 - 0x781cb000      C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.4053_x-ww_E6967989\MSVCR80.dll
    0x777b0000 - 0x77833000      C:\WINDOWS\system32\CLBCatQ.DLL
    0x77010000 - 0x770d6000      C:\WINDOWS\system32\COMRes.dll
    0x77b90000 - 0x77b98000      C:\WINDOWS\system32\VERSION.dll
    0x75da0000 - 0x75e5d000      C:\WINDOWS\system32\SXS.DLL
    0x75e60000 - 0x75e87000      C:\WINDOWS\system32\apphelp.dll
    0x4dc30000 - 0x4dc5e000      C:\WINDOWS\system32\msctfime.ime
    0x4b0d0000 - 0x4b395000      C:\WINDOWS\system32\xpsp2res.dll
    0x71bb0000 - 0x71bb9000      C:\WINDOWS\system32\WSOCK32.dll
    0x4bbe0000 - 0x4bbea000      C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\MMI\WEB-INF\lib\ClearTranProxy.dll
    0x745e0000 - 0x7489e000      C:\WINDOWS\system32\msi.dll
    0x71c40000 - 0x71c97000      C:\WINDOWS\system32\NETAPI32.dll
    0x4bc50000 - 0x4bc6c000      C:\WINDOWS\system32\DBNETLIB.DLL
    0x71f60000 - 0x71f64000      C:\WINDOWS\system32\security.dll
    0x76c90000 - 0x76cb7000      C:\WINDOWS\system32\msv1_0.dll
    0x76cf0000 - 0x76d0a000      C:\WINDOWS\system32\iphlpapi.dll
    0x761b0000 - 0x76243000      C:\WINDOWS\system32\crypt32.dll
    0x76190000 - 0x761a2000      C:\WINDOWS\system32\MSASN1.dll
    0x4bcf0000 - 0x4bcff000      C:\Program Files\Common Files\System\Ole DB\SQLOLEDB.RLL
    0x4a8a0000 - 0x4a8aa000      C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\MMI\WEB-INF\lib\MIGI.DLL
    0x73570000 - 0x736c2000      C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\MMI\WEB-INF\lib\MSVBVM60.DLL
    0x4a950000 - 0x4a9e2000      C:\Program Files\Common Files\System\ado\msado15.dll
    0x74a50000 - 0x74a6a000      C:\WINDOWS\system32\MSDART.DLL
    0x4c850000 - 0x4c8c9000      C:\Program Files\Common Files\System\Ole DB\oledb32.dll
    0x4dbb0000 - 0x4dbc1000      C:\Program Files\Common Files\System\Ole DB\OLEDB32R.DLL
    VM Arguments:
    jvm_args: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 5.5 -Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 5.5 -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\endorsed -Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 5.5\temp -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\logging.properties -Djava.library.path=C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\MMI\WEB-INF\lib vfprintf -Xms512m -Xmx1024m
    java_command: <unknown>
    Launcher Type: generic
    Environment Variables:
    JAVA_HOME=C:\Program Files\Java\jdk1.6.0_07
    [error occurred during error reporting (printing environment variables), id 0xc0000005]
    --------------- S Y S T E M ---------------
    OS: Windows Server 2003 family Build 3790 Service Pack 2
    CPU:total 4 (4 cores per cpu, 1 threads per core) family 6 model 7 stepping 6, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3
    Memory: 4k page, physical 2097151k(2097151k free), swap 4194303k(4194303k free)
    vm_info: Java HotSpot(TM) Client VM (10.0-b23) for windows-x86 JRE (1.6.0_07-b06), built on Jun 10 2008 01:14:11 by "java_re" with MS VC++ 7.1
    time: Mon Dec 28 15:24:00 2009
    elapsed time: 600 seconds

  • Deploying a WAR file containing .jsp and servlets (also uses JNI)

    Deploying a WAR file containing .jsp and servlets (also uses JNI) on Windows 2000
    We had problems making it initially work on Sun ONE Web Server 6.0 Service Pack 1 because of lack of good iPlanet Web
    Server documentation on deploying such files.
    This is how we went about it:
    1) Make one of the servlet and JSP (must call another Java Class) web application (.war) examples work with iPlanet Web
    Server.
    C:\iPlanet\Servers\plugins\servlets\examples\web-apps\HelloWorld\HelloWorld.war
    and
    C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    a) Go to your Web Server Administration to deploy the application using GUI Web Application Deploy.
    (We usually use command line, we experienced some issues with the GUI version, but maybe it is fixed in the new Web Server
    service packs)
    From browser, open http://yourserver:8888/
    Click on Select a Server:Manage
    Click on Virtual Server Class
    Click on https-yourserver
    Click on the Web Applications Tab
    Then, click on Deploy Web Application
    Enter the following -
    WAR File On: Local
    WAR File Path: C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    Application URI: /jakarta
    Installation Directory: c:\iPlanet\examples\jakarta-examples
    By clicking on OK it deployed the application.
    I can verify that it is deployed by selecting "Edit Web Applications" and I see the following entry:
    Edit     /jakarta     c:/iPlanet/examples/jakarta-examples
    Also, c:/iPlanet/examples/jakarta-examples should have the similar following directory structure ..
    - [images]
    - [jsp]
    - index.html
    - [servlets]
    - [META-INF]
    - [WEB-INF]
    - [classes]
    - [tlds]
    - web.xml
    - index.html
    I restarted the server and accessed it using the following URL from my IE browser:
    http://yourserver/jakarta/index.html
    Then I clicked on the JSP Examples and tried some JSP examples.
    b) Alternatively, you can also deploy the same example from the command-line.
    Make sure C:\iPlanet\Servers\bin\https\httpadmin\bin\ is in your path
    wdeploy deploy      -u /jakarta
              -i yourserver
              -v https-yourserver
              -d c:\iplanet\examples\jakarta-examples
              C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    Restart the web server (I don't think you have to restart, but .. might as well).
    2)Deploy your web-application
    My Foo.war has the following structure.
    You can use jar tf Foo.war to look at the file contents from command line (assuming you have JDK installed and the bin is
    in your PATH)
    Foo.war
    - [META-INF]
    - [WEB-INF]
    - web.xml
    - [classes]
    - Bar.class
    - MoServlet.class
    - [lib]
    - ThirdParty.jar
    - [natlib]
    - extlib.dll
    - foo.jsp
    Here is our application scenario:
    foo.jsp uses a class call Bar (it is not in any package). The Bar java class uses classes from ThirdParty.jar. The
    ThirdParty.jar in turn uses JNI to load library extlib.dll. foo.jsp also calls /servlet/Mo as well.
    Now to deploy it, do the following:
    (a) Make sure that within foo.jsp, you import the Bar class ( I don't know why you have to do it, but if you don't you get
    JSP compile error).
    <%@page language="java" import="Bar" contentType="text/html"%>
    (b) Check web.xml (for Servlets)
    Within web.xml, make sure you have the following mappings:
    <servlet>
    <servlet-name> MoLink </servlet-name>
    <servlet-class> MoServlet </servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name> MoLink </servlet-name>
    <url-pattern> /servlet/Mo </url-pattern>
    </servlet-mapping>
    (c) Deploy the application
    Using command line:
    wdeploy deploy      -u /foo
              -i yourserver
              -v https-yourserver
              -d c:\iplanet\examples\foo-dir
              Foo.war
    (d) Change web-apps.xml file (for picking up ThirdParty.jar)
    It is located in
    C:\iPlanet\Servers\https-yourserver\config
    You should see something similar to following after successful deployment.
    <web-app uri="/foo" dir="C:\iPlanet\examples\foo-dir" enable="true"/>
    Change it to look like following to pick up the ThirdParty.jar
    <web-app uri="/foo" dir="C:\iPlanet\examples\foo-dir" enable="true">
    <class-loader reload-interval="300"
              classpath="C:/iPlanet/examples/foo-dir/WEB-INF/lib/ThirdParty.jar"
              delegate="false"/>
    </web-app>
    (e) Change jvm12.conf file (for JNI)
    It is located in
    C:\iPlanet\Servers\https-yourserver\config
    Add or uncomment the following lines:
    #optional - just helps with instrumenting the jsp and servlet code
    jvm.include.CLASSPATH=1
    jvm.enableDebug=1
    nes.jsp.enabledebug=1
    jvm.trace=7
    jvm.verboseMode=1
    #required for JNI
    java.compiler=NONE
    jvm.classpath=.;C:\JDK1.3.1\lib\tools.jar;C:/iPlanet/Servers/plugins/servlets/examples/legacy/beans.10/SDKBeans10.jar;
    jvm.option=-Xrs
    jvm.option=-Xnoagent
    # not sure if this is needed for iPlanet web server
    jvm.option=-Djava.library.path=C:/iPlanet/examples/foo-dir/natlib/ -Djava.compiler=NONE
    (f) Change magnus.conf file (for JNI)
    We HAD to change this file in order for ThirdParty.jar file to pick up the native C++ code using JNI. Apparently, the
    iPlanet Web Server doesn't pick the Environment Variable Path. Because when we had the directory containing the DLL just
    in Path, it didn't work.
    Change Extrapath directive:
    ExtraPath C:/iPlanet/Servers/bin/https/bin;${NSES_JRE_RUNTIME_LIBPATH}
    to
    ExtraPath c:/iPlanet/examples/foo-dir/natlib;C:/iPlanet/Servers/bin/https/bin;${NSES_JRE_RUNTIME_LIBPATH}
    (g) Apply changes from the Web Server Administration Console and Restart the web server.
    You should be able to see the behaviour that you want from your application.
    http://yourserver/foo/foo.jsp
    Hope this was helpful!!!
    Sonu

    Deploying a WAR file containing .jsp and servlets (also uses JNI) on Windows 2000
    We had problems making it initially work on Sun ONE Web Server 6.0 Service Pack 1 because of lack of good iPlanet Web
    Server documentation on deploying such files.
    This is how we went about it:
    1) Make one of the servlet and JSP (must call another Java Class) web application (.war) examples work with iPlanet Web
    Server.
    C:\iPlanet\Servers\plugins\servlets\examples\web-apps\HelloWorld\HelloWorld.war
    and
    C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    a) Go to your Web Server Administration to deploy the application using GUI Web Application Deploy.
    (We usually use command line, we experienced some issues with the GUI version, but maybe it is fixed in the new Web Server
    service packs)
    From browser, open http://yourserver:8888/
    Click on Select a Server:Manage
    Click on Virtual Server Class
    Click on https-yourserver
    Click on the Web Applications Tab
    Then, click on Deploy Web Application
    Enter the following -
    WAR File On: Local
    WAR File Path: C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    Application URI: /jakarta
    Installation Directory: c:\iPlanet\examples\jakarta-examples
    By clicking on OK it deployed the application.
    I can verify that it is deployed by selecting "Edit Web Applications" and I see the following entry:
    Edit     /jakarta     c:/iPlanet/examples/jakarta-examples
    Also, c:/iPlanet/examples/jakarta-examples should have the similar following directory structure ..
    - [images]
    - [jsp]
    - index.html
    - [servlets]
    - [META-INF]
    - [WEB-INF]
    - [classes]
    - [tlds]
    - web.xml
    - index.html
    I restarted the server and accessed it using the following URL from my IE browser:
    http://yourserver/jakarta/index.html
    Then I clicked on the JSP Examples and tried some JSP examples.
    b) Alternatively, you can also deploy the same example from the command-line.
    Make sure C:\iPlanet\Servers\bin\https\httpadmin\bin\ is in your path
    wdeploy deploy      -u /jakarta
              -i yourserver
              -v https-yourserver
              -d c:\iplanet\examples\jakarta-examples
              C:\iPlanet\Servers\plugins\servlets\examples\web-apps\jakarta-examples\jarkarta-examples.war
    Restart the web server (I don't think you have to restart, but .. might as well).
    2)Deploy your web-application
    My Foo.war has the following structure.
    You can use jar tf Foo.war to look at the file contents from command line (assuming you have JDK installed and the bin is
    in your PATH)
    Foo.war
    - [META-INF]
    - [WEB-INF]
    - web.xml
    - [classes]
    - Bar.class
    - MoServlet.class
    - [lib]
    - ThirdParty.jar
    - [natlib]
    - extlib.dll
    - foo.jsp
    Here is our application scenario:
    foo.jsp uses a class call Bar (it is not in any package). The Bar java class uses classes from ThirdParty.jar. The
    ThirdParty.jar in turn uses JNI to load library extlib.dll. foo.jsp also calls /servlet/Mo as well.
    Now to deploy it, do the following:
    (a) Make sure that within foo.jsp, you import the Bar class ( I don't know why you have to do it, but if you don't you get
    JSP compile error).
    <%@page language="java" import="Bar" contentType="text/html"%>
    (b) Check web.xml (for Servlets)
    Within web.xml, make sure you have the following mappings:
    <servlet>
    <servlet-name> MoLink </servlet-name>
    <servlet-class> MoServlet </servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name> MoLink </servlet-name>
    <url-pattern> /servlet/Mo </url-pattern>
    </servlet-mapping>
    (c) Deploy the application
    Using command line:
    wdeploy deploy      -u /foo
              -i yourserver
              -v https-yourserver
              -d c:\iplanet\examples\foo-dir
              Foo.war
    (d) Change web-apps.xml file (for picking up ThirdParty.jar)
    It is located in
    C:\iPlanet\Servers\https-yourserver\config
    You should see something similar to following after successful deployment.
    <web-app uri="/foo" dir="C:\iPlanet\examples\foo-dir" enable="true"/>
    Change it to look like following to pick up the ThirdParty.jar
    <web-app uri="/foo" dir="C:\iPlanet\examples\foo-dir" enable="true">
    <class-loader reload-interval="300"
              classpath="C:/iPlanet/examples/foo-dir/WEB-INF/lib/ThirdParty.jar"
              delegate="false"/>
    </web-app>
    (e) Change jvm12.conf file (for JNI)
    It is located in
    C:\iPlanet\Servers\https-yourserver\config
    Add or uncomment the following lines:
    #optional - just helps with instrumenting the jsp and servlet code
    jvm.include.CLASSPATH=1
    jvm.enableDebug=1
    nes.jsp.enabledebug=1
    jvm.trace=7
    jvm.verboseMode=1
    #required for JNI
    java.compiler=NONE
    jvm.classpath=.;C:\JDK1.3.1\lib\tools.jar;C:/iPlanet/Servers/plugins/servlets/examples/legacy/beans.10/SDKBeans10.jar;
    jvm.option=-Xrs
    jvm.option=-Xnoagent
    # not sure if this is needed for iPlanet web server
    jvm.option=-Djava.library.path=C:/iPlanet/examples/foo-dir/natlib/ -Djava.compiler=NONE
    (f) Change magnus.conf file (for JNI)
    We HAD to change this file in order for ThirdParty.jar file to pick up the native C++ code using JNI. Apparently, the
    iPlanet Web Server doesn't pick the Environment Variable Path. Because when we had the directory containing the DLL just
    in Path, it didn't work.
    Change Extrapath directive:
    ExtraPath C:/iPlanet/Servers/bin/https/bin;${NSES_JRE_RUNTIME_LIBPATH}
    to
    ExtraPath c:/iPlanet/examples/foo-dir/natlib;C:/iPlanet/Servers/bin/https/bin;${NSES_JRE_RUNTIME_LIBPATH}
    (g) Apply changes from the Web Server Administration Console and Restart the web server.
    You should be able to see the behaviour that you want from your application.
    http://yourserver/foo/foo.jsp
    Hope this was helpful!!!
    Sonu

  • Call to a C++ DLL, using JNI - C++ method has char*

    I am trying to link into an existing C++ Dynamically Linked Library(DLL) using the Java Native Interface(JNI).
    All goes fine, and the library loads into the current program, however when I try to call the function, it crashes. The function has char pointers, and I haven;t been able to get Java to simulate them. Is there a way?????
    I have tried using and array of chars .....char[], and String, but no dice.
    Any suggestions O'learned Java ones??

    It will be necessary for you to write a JNI adapter in C/C++ to accomplish this. Java character strings and arrays are very different from those of C/C++ and you'll have to use JNI functions to adapt.
    Chuck

  • Calling C++ DLL's Using JNI

    I have a question.. I need to call few C++ DLL methods from java. So I planned use JNI to do that. The question is there any probable or known performance issues if tried to call DLL's from java application. And also I also appreciate If you can you please send me a link where I can find a sample code for running DLL's using Java application
    Note: I know I dont have any control on performance issues with DLL's

    look at http://staff.develop.com/halloway/code/jawin.html

  • Trouble using JNI

    Hi everyone
    I have a problem, with a class which has native functions(JNI).
    The application I�m developing, uses thread�s. At the beginning before thread starts his job, application calls a native function without problem. But when another thread calls another native function(same class) generates the next error :
    java.lang.UnsatisfiedLinkError: estarEnEjecucion
    at MemoriaCompartida.estarEnEjecucion(Native Method)
    at MemoriaCompartida.estarEnEjecucion(MemoriaCompartida.java:72)
    at Censor.timerIntervalo(Censor.java:82)
    at Timer.run(Timer.java:225)
    at java.lang.Thread.run(Thread.java:534)
    What seems to be the problem???
    Thanks a lot for your help

    First of all,
    when I use JNI, I like to put the System.loadLibrary() on a static method in the first class I know will be loaded.
    like this:
    static {
        System.loadLibrary("Name");
    }So I know that Library was succesfuly loaded.
    Anyway, I bet that your library do NOT have the method you are trying to access, or maybe is missing parameters!
    Check it!
    If I didn't helped, please put the call of the methods in the java file and the library, if you can.
    Cya...
    Message was edited by:
    pbulgarelli
    Message was edited by:
    pbulgarelli

  • How to use JNI with Servlets

    Hi
    i was trying to do some example with JNI. I can use JNI with standalone Java application but I just cannot figure out how I can use JNI with Servlet.
    Can some one show me a sample code using JNI with Servlets.
    thanks very much

    hi,
    I am also facing the same problem,
    when I am using JNI with stand alone application it works fine but when i tried to use it with a servlet It gives unsatisfied linker error
    stack: java.lang.UnsatisfiedLinkError: createSocket
         at RelayConnector.createSocket(Native Method)
         at RelayServlet.doGet(RelayServlet.java:70)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.iplanet.server.http.servlet.NSServletRunner.invokeServletService(NSServletRunner.java:891)
         at com.iplanet.server.http.servlet.NSServletRunner.Service(NSServletRunner.java:458)
    It seems i have to do some path settings in my iplenet web server.
    If some one have faced the problem i would be glad to know the solution for this, i am literally bugged up,....

  • Segmentation fault when using jni application

    Hi I have a segmentation fault whe i use jni with a c++ program, i don't know how to read hs_err_pid....log, can someone help me to analyse this file
    # An unexpected error has been detected by HotSpot Virtual Machine:
    # SIGSEGV (0xb) at pc=0x9704e824, pid=15092, tid=2983283632
    # Java VM: Java HotSpot(TM) Client VM (1.5.0_15-b04 mixed mode, sharing)
    # Problematic frame:
    # C 0x9704e824
    --------------- T H R E A D ---------------
    Current thread (0x08379000): JavaThread "Xxxxxxxx main loop #1 (machine)" [_thread_in_native, id=15101]
    siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x9704e824
    Registers:
    EAX=0xb1f9c030, EBX=0xb1edafa0, ECX=0x48411fc8, EDX=0x08377218
    ESP=0xb1d13bfc, EBP=0xb1d13c18, ESI=0xb1f1020a, EDI=0xb1edc5a8
    EIP=0x9704e824, CR2=0x9704e824, EFLAGS=0x00010286
    Top of Stack: (sp=0xb1d13bfc)
    0xb1d13bfc: b1e78eb5 b1f9c030 48411fc8 b1e78e2b
    0xb1d13c0c: b1f9b494 b1d13c50 b0786e50 b1d13c78
    0xb1d13c1c: b1f6a332 b0786e50 48411fc8 b1d13c48
    0xb1d13c2c: b7bca34c 083790c0 b1d13c40 08410e58
    0xb1d13c3c: 00a0b574 b1f9c030 0838b2e0 b074ed18
    0xb1d13c4c: b1fca214 b1f9c360 0838b2e0 b072e2d8
    0xb1d13c5c: b1fb761c 08373ce8 b1d13c94 b1f6a16f
    0xb1d13c6c: b1f9b494 08373c08 00000001 b1d13cc8
    Instructions: (pc=0x9704e824)
    0x9704e814:
    [error occurred during error reporting, step 100, id 0xb]
    Stack: [0xb1c94000,0xb1d15000), sp=0xb1d13bfc, free space=510k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    C 0x9704e824
    C [libxxxxxxxxxx.so.1.6+0x7d332] _ZN10MyApplication12Route4tickEj+0x1ce
    C [libxxxxxxxxxx.so.1.6+0x34248] _ZN10MyApplication4Core8workEj+0x34
    C [libyyyyyy.so+0x15457] ZN5CCore8mainLoopEP7JNIEnv+0x17f
    C [libyyyyyy.so+0x1f299] Java_com_xx_xxxxxxxx_xxxxxxxximpl_jni_JCore_run+0x35
    j com.xx.xxxxxxxx.xxxxxxxximpl.jni.JCore.run()V+0
    v ~StubRoutines::call_stub
    V [libjvm.so+0x17b2bc]
    V [libjvm.so+0x28fed8]
    V [libjvm.so+0x17ab15]
    V [libjvm.so+0x17abae]
    V [libjvm.so+0x1f2b15]
    V [libjvm.so+0x2f9933]
    V [libjvm.so+0x290ae8]
    C [libpthread.so.0+0x5371]
    Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
    j com.xx.xxxxxxxx.xxxxxxxximpl.jni.JCore.run()V+0
    v ~StubRoutines::call_stub
    --------------- P R O C E S S ---------------
    Java Threads: ( => current thread )
    =>0x08379000 JavaThread "Xxxxxxxx main loop #1 (machine)" [_thread_in_native, id=15101]
    0x083634d8 JavaThread "Thread-0" [_thread_in_native, id=15100]
    0x080a5c60 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=15098]
    0x080a47a8 JavaThread "CompilerThread0" daemon [_thread_blocked, id=15097]
    0x080a3850 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=15096]
    0x0809dbe8 JavaThread "Finalizer" daemon [_thread_blocked, id=15095]
    0x0809bdb8 JavaThread "Reference Handler" daemon [_thread_blocked, id=15094]
    0x0805caa0 JavaThread "main" [_thread_in_native, id=15092]
    Other Threads:
    0x0809a940 VMThread [id=15093]
    0x080a71d0 WatcherThread [id=15099]
    VM state:not at safepoint (normal execution)
    VM Mutex/Monitor currently owned by a thread: None
    Heap
    def new generation total 576K, used 515K [0x88bc0000, 0x88c60000, 0x890a0000)
    eden space 512K, 95% used [0x88bc0000, 0x88c3a560, 0x88c40000)
    from space 64K, 40% used [0x88c40000, 0x88c46888, 0x88c50000)
    to space 64K, 0% used [0x88c50000, 0x88c50000, 0x88c60000)
    tenured generation total 1408K, used 918K [0x890a0000, 0x89200000, 0x8cbc0000)
    the space 1408K, 65% used [0x890a0000, 0x89185850, 0x89185a00, 0x89200000)
    compacting perm gen total 8192K, used 500K [0x8cbc0000, 0x8d3c0000, 0x90bc0000)
    the space 8192K, 6% used [0x8cbc0000, 0x8cc3d110, 0x8cc3d200, 0x8d3c0000)
    ro space 8192K, 68% used [0x90bc0000, 0x91142e10, 0x91143000, 0x913c0000)
    rw space 12288K, 48% used [0x913c0000, 0x91991640, 0x91991800, 0x91fc0000)
    Dynamic libraries:
    00113000-00121000 r-xp 00000000 03:01 6292457 /lib/tls/libpthread-2.3.4.so
    00121000-00123000 rwxp 0000d000 03:01 6292457 /lib/tls/libpthread-2.3.4.so
    00123000-00125000 rwxp 00123000 00:00 0
    0022c000-0023b000 r-xp 00000000 03:01 6292459 /lib/libresolv-2.3.4.so
    0023b000-0023d000 rwxp 0000f000 03:01 6292459 /lib/libresolv-2.3.4.so
    0023d000-0023f000 rwxp 0023d000 00:00 0
    002be000-002c5000 r-xp 00000000 03:01 6292458 /lib/libgcc_s-3.4.6-20060404.so.1
    002c5000-002c6000 rwxp 00007000 03:01 6292458 /lib/libgcc_s-3.4.6-20060404.so.1
    002e8000-003a8000 r-xp 00000000 03:01 10722848 /usr/lib/libstdc++.so.6.0.3
    003a8000-003ad000 rwxp 000bf000 03:01 10722848 /usr/lib/libstdc++.so.6.0.3
    003ad000-003b3000 rwxp 003ad000 00:00 0
    0087d000-0088f000 r-xp 00000000 03:01 6292465 /lib/libnsl-2.3.4.so
    0088f000-00891000 rwxp 00011000 03:01 6292465 /lib/libnsl-2.3.4.so
    00891000-00893000 rwxp 00891000 00:00 0
    00b99000-00bae000 r-xp 00000000 03:01 6292453 /lib/ld-2.3.4.so
    00bae000-00baf000 r-xp 00015000 03:01 6292453 /lib/ld-2.3.4.so
    00baf000-00bb0000 rwxp 00016000 03:01 6292453 /lib/ld-2.3.4.so
    00bb7000-00cdc000 r-xp 00000000 03:01 6292454 /lib/tls/libc-2.3.4.so
    00cdc000-00cdd000 r-xp 00124000 03:01 6292454 /lib/tls/libc-2.3.4.so
    00cdd000-00ce0000 rwxp 00125000 03:01 6292454 /lib/tls/libc-2.3.4.so
    00ce0000-00ce2000 rwxp 00ce0000 00:00 0
    00ce4000-00d05000 r-xp 00000000 03:01 6292455 /lib/tls/libm-2.3.4.so
    00d05000-00d07000 rwxp 00020000 03:01 6292455 /lib/tls/libm-2.3.4.so
    00d09000-00d0b000 r-xp 00000000 03:01 6292456 /lib/libdl-2.3.4.so
    00d0b000-00d0d000 rwxp 00001000 03:01 6292456 /lib/libdl-2.3.4.so
    08048000-08057000 r-xp 00000000 03:01 11715142 /usr/java/jdk1.5.0_15/bin/java
    08057000-08059000 rwxp 0000e000 03:01 11715142 /usr/java/jdk1.5.0_15/bin/java
    08059000-086b9000 rwxp 08059000 00:00 0
    88bc0000-88c60000 rwxp 88bc0000 00:00 0
    88c60000-890a0000 rwxp 88c60000 00:00 0
    890a0000-89200000 rwxp 890a0000 00:00 0
    89200000-8cbc0000 rwxp 89200000 00:00 0
    8cbc0000-8d3c0000 rwxp 8cbc0000 00:00 0
    8d3c0000-90bc0000 rwxp 8d3c0000 00:00 0
    90bc0000-91143000 r-xs 00001000 03:01 11698348 /usr/java/jdk1.5.0_15/jre/lib/i386/client/classes.jsa
    91143000-913c0000 rwxp 91143000 00:00 0
    913c0000-91992000 rwxp 00584000 03:01 11698348 /usr/java/jdk1.5.0_15/jre/lib/i386/client/classes.jsa
    91992000-91fc0000 rwxp 91992000 00:00 0
    91fc0000-92090000 rwxp 00b56000 03:01 11698348 /usr/java/jdk1.5.0_15/jre/lib/i386/client/classes.jsa
    92090000-923c0000 rwxp 92090000 00:00 0
    923c0000-923c4000 r-xs 00c26000 03:01 11698348 /usr/java/jdk1.5.0_15/jre/lib/i386/client/classes.jsa
    923c4000-927c0000 rwxp 923c4000 00:00 0
    b0500000-b0521000 rwxp b0500000 00:00 0
    b0521000-b0600000 --xp b0521000 00:00 0
    b0600000-b0636000 rwxp b0600000 00:00 0
    b0636000-b0700000 --xp b0636000 00:00 0
    b0700000-b0800000 rwxp b0700000 00:00 0
    b0873000-b0874000 --xp b0873000 00:00 0
    b0874000-b1c74000 rwxp b0874000 00:00 0
    b1c74000-b1c78000 r-xp 00000000 03:01 6291503 /lib/libnss_dns-2.3.4.so
    b1c78000-b1c7a000 rwxp 00003000 03:01 6291503 /lib/libnss_dns-2.3.4.so
    b1c94000-b1c97000 --xp b1c94000 00:00 0
    b1c97000-b1d15000 rwxp b1c97000 00:00 0
    b1d15000-b1d1b000 r-xs 00000000 03:01 10748120 /usr/lib/gconv/gconv-modules.cache
    b1fcb000-b1fdd000 r-xp 00000000 03:01 11603256 /usr/java/jdk1.5.0_15/jre/lib/i386/libnet.so
    b1fdd000-b1fde000 rwxp 00011000 03:01 11603256 /usr/java/jdk1.5.0_15/jre/lib/i386/libnet.so
    b1fde000-b1fe1000 --xp b1fde000 00:00 0
    b1fe1000-b205f000 rwxp b1fe1000 00:00 0
    b2089000-b214f000 r-xs 00000000 03:01 11698359 /usr/java/jdk1.5.0_15/jre/lib/ext/localedata.jar
    b214f000-b2152000 r-xs 00000000 03:01 11698358 /usr/java/jdk1.5.0_15/jre/lib/ext/dnsns.jar
    b2152000-b217d000 r-xs 00000000 03:01 11698357 /usr/java/jdk1.5.0_15/jre/lib/ext/sunpkcs11.jar
    b217d000-b21a4000 r-xs 00000000 03:01 11698356 /usr/java/jdk1.5.0_15/jre/lib/ext/sunjce_provider.jar
    b21a4000-b21a5000 --xp b21a4000 00:00 0
    b21a5000-b2225000 rwxp b21a5000 00:00 0
    b2225000-b2228000 --xp b2225000 00:00 0
    b2228000-b22a6000 rwxp b2228000 00:00 0
    b22a6000-b22a9000 --xp b22a6000 00:00 0
    b22a9000-b2327000 rwxp b22a9000 00:00 0
    b2327000-b232a000 --xp b2327000 00:00 0
    b232a000-b23a8000 rwxp b232a000 00:00 0
    b23a8000-b25a8000 r-xp 00000000 03:01 10717357 /usr/lib/locale/locale-archive
    b25a8000-b25ab000 --xp b25a8000 00:00 0
    b25ab000-b2629000 rwxp b25ab000 00:00 0
    b2629000-b262c000 --xp b2629000 00:00 0
    b262c000-b26aa000 rwxp b262c000 00:00 0
    b26aa000-b26ab000 --xp b26aa000 00:00 0
    b26ab000-b273c000 rwxp b26ab000 00:00 0
    b273c000-b2758000 rwxp b273c000 00:00 0
    b2758000-b2759000 rwxp b2758000 00:00 0
    b2759000-b2776000 rwxp b2759000 00:00 0
    b2776000-b2777000 rwxp b2776000 00:00 0
    b2777000-b2778000 rwxp b2777000 00:00 0
    b2778000-b277a000 rwxp b2778000 00:00 0
    b277a000-b2796000 rwxp b277a000 00:00 0
    b2796000-b279a000 rwxp b2796000 00:00 0
    b279a000-b27b6000 rwxp b279a000 00:00 0
    b27b6000-b27c5000 rwxp b27b6000 00:00 0
    b27c5000-b2841000 rwxp b27c5000 00:00 0
    b2841000-b2941000 rwxp b2841000 00:00 0
    b2941000-b4841000 rwxp b2941000 00:00 0
    b4841000-b50b0000 r-xs 00000000 03:01 11603318 /usr/java/jdk1.5.0_15/jre/lib/charsets.jar
    b50b0000-b50c5000 r-xs 00000000 03:01 11603283 /usr/java/jdk1.5.0_15/jre/lib/jce.jar
    b50c5000-b514a000 r-xs 00000000 03:01 11603316 /usr/java/jdk1.5.0_15/jre/lib/jsse.jar
    b514a000-b51b3000 rwxp b514a000 00:00 0
    b51b3000-b77db000 r-xs 00000000 03:01 11603320 /usr/java/jdk1.5.0_15/jre/lib/rt.jar
    b77db000-b77ea000 r-xp 00000000 03:01 11603253 /usr/java/jdk1.5.0_15/jre/lib/i386/libzip.so
    b77ea000-b77ec000 rwxp 0000e000 03:01 11603253 /usr/java/jdk1.5.0_15/jre/lib/i386/libzip.so
    b77ec000-b780d000 r-xp 00000000 03:01 11603251 /usr/java/jdk1.5.0_15/jre/lib/i386/libjava.so
    b780d000-b780f000 rwxp 00020000 03:01 11603251 /usr/java/jdk1.5.0_15/jre/lib/i386/libjava.so
    b780f000-b7818000 r-xp 00000000 03:01 6291506 /lib/libnss_files-2.3.4.so
    b7818000-b781a000 rwxp 00008000 03:01 6291506 /lib/libnss_files-2.3.4.so
    b7820000-b782b000 r-xp 00000000 03:01 11603250 /usr/java/jdk1.5.0_15/jre/lib/i386/libverify.so
    b782b000-b782c000 rwxp 0000b000 03:01 11603250 /usr/java/jdk1.5.0_15/jre/lib/i386/libverify.so
    b782c000-b7834000 rwxs 00000000 03:01 6619137 /tmp/hsperfdata_myname/15092
    b7834000-b783a000 r-xp 00000000 03:01 11603246 /usr/java/jdk1.5.0_15/jre/lib/i386/native_threads/libhpi.so
    b783a000-b783b000 rwxp 00006000 03:01 11603246 /usr/java/jdk1.5.0_15/jre/lib/i386/native_threads/libhpi.so
    b783b000-b783c000 rwxp b783b000 00:00 0
    b783c000-b783d000 r-xp b783c000 00:00 0
    b783d000-b7baf000 r-xp 00000000 03:01 11698345 /usr/java/jdk1.5.0_15/jre/lib/i386/client/libjvm.so
    b7baf000-b7bcd000 rwxp 00372000 03:01 11698345 /usr/java/jdk1.5.0_15/jre/lib/i386/client/libjvm.so
    b7bcd000-b7fe6000 rwxp b7bcd000 00:00 0
    bfe00000-bfe03000 --xp bfe00000 00:00 0
    bfe03000-c0000000 rwxp bfe03000 00:00 0
    ffffe000-fffff000 ---p 00000000 00:00 0
    VM Arguments:
    jvm_args: -Xcheck:jni -XX:+PrintCompilation
    java_command: myapplication
    Launcher Type: SUN_STANDARD
    Environment Variables:
    PATH=/home/myname/XXXXXXXX_PERF/bin:/usr/java/jdk1.5.0_15/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/myname/bin
    LD_LIBRARY_PATH=/usr/java/jdk1.5.0_15/jre/lib/i386/client:/usr/java/jdk1.5.0_15/jre/lib/i386:/usr/java/jdk1.5.0_15/jre/../lib/i386:/home/myname/XXXXXXXX/lib
    SHELL=/bin/bash
    DISPLAY=XXX.XXX.X.XXX:0.0
    Signal Handlers:
    SIGSEGV: [libjvm.so+0x32b740], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
    SIGBUS: [libjvm.so+0x32b740], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
    SIGFPE: [libjvm.so+0x28ef10], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
    SIGPIPE: [libjvm.so+0x28ef10], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
    SIGILL: [libjvm.so+0x28ef10], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
    SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
    SIGUSR2: [libjvm.so+0x291360], sa_mask[0]=0x00000000, sa_flags=0x14000004
    SIGHUP: [libjvm.so+0x290d90], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
    SIGINT: [libjvm.so+0x290d90], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
    SIGQUIT: [libjvm.so+0x290d90], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
    SIGTERM: [libjvm.so+0x290d90], sa_mask[0]=0x7ffbfeff, sa_flags=0x14000004
    --------------- S Y S T E M ---------------
    OS:Red Hat Enterprise Linux WS release 4 (Nahant Update 4)
    uname:Linux 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:27:17 EDT 2006 i686
    libc:glibc 2.3.4 NPTL 2.3.4
    rlimit: STACK 20480k, CORE 0k, NPROC 16375, NOFILE 1024, AS infinity
    load average:3.46 1.36 0.50
    CPU:total 2 (cores per cpu 1, threads per core 2) family 15 model 4 stepping 1, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ht
    Memory: 4k page, physical 1034096k(389000k free), swap 0k(0k free)
    vm_info: Java HotSpot(TM) Client VM (1.5.0_15-b04) for linux-x86, built on Feb 9 2008 01:37:00 by java_re with gcc 3.2.1-7a (J2SE release)
    Regards
    Fr�d�ric

    Simple - something is wrong with your C/C++ code.
    You have a pointer/memory bug.

  • Error when I use JNI

    Hi
    I�m developming a wrapper in C because I need to call C�methods of the scanner�drivers
    but when I run the java�code (the java�code call a JNI function that call the scanner drivers in C)
    I get the following error:
    C:\Documents and Settings\yamilet\Mis documentos\pruebaJNI\Scanner\escaner>java
    Scanner
    Valor devuelto por la funcion Open: 0
    # An unexpected error has been detected by HotSpot Virtual Machine:
    # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x02ca55ea, pid=2692, tid=4092
    # Java VM: Java HotSpot(TM) Client VM (1.5.0_02-b09 mixed mode, sharing)
    # Problematic frame:
    # C [LS100.dll+0x55ea]
    # An error report file with more information is saved as hs_err_pid2692.log
    # If you would like to submit a bug report, please visit:
    # http://java.sun.com/webapps/bugreport/crash.jsp
    Anybody have any idea about this error?
    Please help me
    Thank for advance

    The problem occurs the same way with or without breakpoints (MessageBoxes) in my code. Without any message boxes in the application, the values sent are retrieved, processed and the result sent back by the native method before the error shows up. I even do a println in the Java code of the result sent back before the error shows up.
    It appears that it is something about the creation of the COM component that is causing the JRE to fail. Interestingly, I have been running this appliction (same client code making use of COM components) for some time now using a C++ front end to pass the data with absolutely no problem. The only difference now is that I am using a Java front end and passing the data using JNI. As I wrote earlier, I have used the -Xcheck:jni option with no error reported. I have even use JRE 6 with the
    -XX:-RelaxAccessControlCheck option. That does not help.

  • How do I get the PID of a child process in java using JNI?

    I am writing an app in Java (for **nix) that will spawn multiple processes (using Process objects). I want to be able to get the PID for a particular child process (not the parent). How can I do this?

    You could try an extreme hack of using JNI to read whatever field of the java.lang.Process-derived class may hold a native process id. This would be unsupportable beyond the exact JVM(s) you can test it on, and should only be a last resort, but within these constraints it may work well. The source code for package java.lang gives clues of where to start hacking.
    -slj-

Maybe you are looking for