Loading .dlls in a java class

when we load a .dll in a .java file by the command load library, i.e.
somethg. like :
System.loadLibrary("example");
where example is a .dll file, (example.dll) stored in hard disk, is it
using JNI?
How do we know whether its using JNI or not? is there any other way to
load .dll s in a java application?
Thank You...

You can load a dll file by using either System.loadLibrary ("Example"); or System.load ("DLLFileName"); In either case, the DLL must be available in one of the directories specified by PATH variable. The system checks for this library in the following order:
1. Current Working Directory,
2. DLL's folder (C:\Windows\System and C:\Windows\System32),
3. All the directories you have specified in PATH variable.
In loadLibrary, I am not sure whether you can give .DLL extension but I am very very sure of load method where you will have to specify the filename of the DLL. You can as well specify the complete file path to play it safe.

Similar Messages

  • Unable to load mySql Driver in Java class invoked using bpelx:exec

    Hi ,
    I am trying to connect to mysql database in my java class.when i run this class in Jdeveloper it loads the driver without any problem.I can chk the log in the Jdev messages area.Now I am invoking this class from the BPEL process through <bpelx activity.But when i run my BPEL process it throws runtime exception "classNotFoundException:unable to load com.mysql.jdbc.Driver".I have set the project properties ->libraries to the class path of the mysql jar file as well.
    Now if i try to connect with the Oracle driver then it is working fine.
    I know this is a classpath issue.Can anyone tell me if there are some other settings to make it work fine.
    the java code :
    System.out.println("in getConnection method");
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    System.out.println("loaded Driver :");
    String url="jdbc:mysql://ntlv014:3306/wx";
    _jdbcConnection = DriverManager.getConnection(url,"development","ber1nger");
    System.out.println("Got Connection :"+_jdbcConnection.isClosed());                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    I think you have 2 options..
    either put the jar for the mysql in the classpath on the server...or try something like this :
    http://forum.java.sun.com/thread.jspa?forumID=17&threadID=633158
    try to put the jar of the mysql into the suitecase of the bpel.
    never seen this coming around...so..it's just a wild guess.
    ORABPEL-11622 Could not create/access the TopLink Session
    spendem got the same situation...the puts the libraries in the applib-dir
    Message was edited by:
    Eric Elzinga (IT-Eye)

  • How to convert dll to a java class file?

    Hi folks:
    I have some DLLs in VB and C++ and I wanna to convert them to a java class file. Does anybody know if exist a sw or easy way to do it?
    thanks
    Autair

    Well, I believe you could write JNI to call the functions in the DLLs, although I wouldn't recommend it. (You'd have a non-portable, fragile result.)

  • Dll for java classes

    Hi,
    is it possible to create a .dll having some java classes?
    thanks.

    JNI example
    CNI docs
    You then do stuff like (in C++):
    java::util::Hashtable *ht = new java::util::Hashtable(120);Mmm, Why is JNI soo stinky in comparision. :)

  • How to convert java .class file to .dll file

    hi,
    I got a problem, I have to convert my java .class file to .dll file. Microsoft VC++ program will invoke the converted .dll file.
    Is there any other possibility.
    I was confused.
    Cam any body help me. If you are having solution for the can you send to my [email protected] account.
    thanks,

    No, it is not possible to do what you are suggesting. Yes, you could produce a DLL that wraps the JVM and loads your java class exposing a C and/or C++ callable interface, but that is a lot to go through unless your class is VERY complex. Otherwise, you might want to just create and maintain two implementations.

  • Can not locate Java class using JNI within C++ DLL

    I am using trying to use JNI to call a Java class from C++. The Java class uses JMS to send messages to a JMS message queue. At first I coded the C++ in a console application that created the JavaVM and used JNI to access the Java class. All worked fine. Then I called the Java class using JNI from threads and ran into the problem of the Java class not able to locate the JMS related classes. This was solved by placing the following line in the constructor of the Java class.
    Thread.currentThread().setContextClassLoader(ClassLoader.getSystemClassLoader());
    Then I moved the JNI code from a console application to a DLL in specific an extension DLL that is called by SQL Server or Oracle server. The DLL will use JNI to call the Java class and send messages to a JMS message queue.
    The problem I am having now when the DLL code is called by SQL Server the call to
    JNI_CreateJavaVM
    appears to work correctly but the call to find the Java class using
    jvmEnv->FindClass(pName)
    fails. It appears the is a class loading problem which occurs due to the fact JNI is called from a DLL. When the VM is created I pass the class path information using the statement
    -Djava.class.path=
    And as I stated before it all works when running from a console application. I am new to JNI and really need help in the form of some sample code that will solve this problem. I believe I need to somehow load the classpath information from the DLL but I can not find examples on how to do this using JNI. I have tried several ways using URLClassLoader and getSystemClassLoader from JNI and either it does not work or it crashes very badly.
    I used the following code to determine what the existing class path is and the string returns empty.
    jcls = jvmEnv->FindClass("java/lang/System");
    jmid = jvmEnv->GetStaticMethodID(jcls, "getProperty", "(Ljava/lang/String;)Ljava/lang/String;");
    jstrClassPath = jvmEnv->NewStringUTF("java.class.path");
    jstr = (jstring)jvmEnv->CallStaticObjectMethod(jcls, jmid, jstrClassPath);
    m_jstr = (jstring)jvmEnv->NewGlobalRef(jstr);
    pstr = jvmEnv->GetStringUTFChars(m_jstr, 0);
    Can anyone please help with example code that will solve this problem. Thanks in advance for any help.
    Charles�

    I have determined the problem occurs when the application/component is compiled using VC 6.0. The test application was compiled using VC 7.1 and works correctly by locating the class path information. If the test application is compiled using VC 6.0 it has the same problem.
    The jvm.dll I am using is version 1.4.2.80. Currently this is not an option to compile all the applications that use JNI using VC 7.1 so can someone please tell me how to solve this problem.

  • OAAM 11g R2: Unable to load java class for custom configurable action

    Need to configure a Configurable Action to get triggered for a particular action at a given checkpoint.
    Steps Followed:
    1. Created a java class implementing com.bharosa.vcrypt.tracker.dynamicactions.intf.DynamicAction, getParameters() and execute() methods were implemented in that java class.
    2. Added necessary jars from $ORACLE_IDM_HOME\oaam\cli\lib to the build classpath.
    3. Compiled and created a jar with it.
    4. Extracted the oracle.oaam.extensions.war file into a working folder.
    5. Added the Custom Jar created in step 3 into <working folder>/WEB-INF/lib/
    6. Changed the following in MANIFEST.MF in <working folder>/META-INF/:
    Specification-Version:11.1.2.0.1
    Implementation-Version:11.1.2.0.1
    7. Rejar-ed the oracle.oaam.extensions.war from the working folder using following command:
    jar -cvfm oracle.oaam.extensions.war <working folder>\META-INF\MANIFEST.MF -C <working folder>/ .
    8. Stopped the oaam_admin_server1, oaam_offline_server1 and oaam_server_server1.
    9. Deleted the oracle.oaam.extensions deployment from the weblogic.
    10. Deployed the newly created oracle.oaam.extensions as a shared library for oaam_admin_server1 and oaam_server_server1.
    11. Started all managed servers.
    But when I tried to create an action template with the java class I just created, it was throwing following error
    +java.lang.ClassNotFoundException: *+
    Unable to load configurable action class *. Ensure the class is made available in the class path.
    Referred following documents:
    1.      http://docs.oracle.com/cd/E27559_01/admin.1112/e27207/cfgactions.htm
    2.     http://docs.oracle.com/cd/E27559_01/dev.1112/e27206/cfg-action.htm
    3.     http://docs.oracle.com/cd/E27559_01/dev.1112/e27206/extend.htm
    Kindly help me. Thanks in advance.
    Edited by: 917717 on Dec 12, 2012 7:16 PM

    This thread is a bit stale but I thought it might help to clarify one point about custom jar files on UCCX.
    To properly load a custom jar:
    Upload it into the classpath directory in the document repository. 
    Select it under System | Custom Classes Configuration
    Finally you need to restart the CCX Engine and the CCX Administration services.  If you have HA you need to restart them on both servers. 
    Other notes:
    When referencing your class in the CCX Editor, use the fully qualified name of the class.  Lots of other classes use things like Element or Document so you need to be explicit. The editor only knows about the 20 native classes by their object names.  If you create a Document object in the editor you are really creating a com.cisco.doc.Document object.  If you loaded jdom.jar and you wanted a jdom document then you need to create an object of type org.jdom.Document.
    When compiling your custom jar files, be sure to compile for the version of Java that the CCX Engine runs.  In general UCCX 7.X and older use Java 1.4.  UCCX 8.X and higher use Java 1.6.  Several of the core Java classes had significant changes between 1.4 and 1.6. If you ran your code on UCCX 7 or earlier and now it fails in UCCX 8.X or higher, recomplile for Java 1.6 and you classes will likely work again.
    Finally, check for security violations in UCCX 8.X or higher.  Cisco has restricted some of the things you can do.  These URL's have more information:
    http://docwiki.cisco.com/wiki/Engine
    http://docwiki.cisco.com/wiki/Troubleshooting_Tips_for_Unified_CCX_8.0
    -Steven
    Please help us make the communities better.  Rate helpful posts!

  • How to convert java class to dll file for using in Microsoft Technology(.n)

    hey hemmj !!!!!!
    nice replying , first of all i d like to say thanks for response me so frequently..... i like such type of guy... i d never forget ur online support.
    hey buddy, i ve a problem with applet application...
    i m working on java chat server build on swing applet. As it is chat server, it is divided into two parts, one is server application and other is client application. I want to run this server app on the client server and the basic thing with this site is that it is running on .net platform(Microsoft). and the other app ll running on the client machine or end user. Now the problem is that this site would run only if the server app ll be run on server. This server app ll open the socket of server, which ll listen the request of the user...... So, the requirement is to convert this java sever class file into dll file and register this dll file with the IIS server.So, It run and stop with the IIS server.
    I ve already search the way to convert the java class file into dll file. This is possible in such way........... below code is for the java class file...
    import java.net.*;
    import java.io.*;
    import java.util.*;
    public class chatServer
    public static void main(String args[]) throws Exception
                        ServerSocket sersoc=new ServerSocket(1234);// Any port number above 1000 should do
    // as most ports below 1000 are used by system
    Vector socvec=new Vector();
    String data="";int i,j=0;
    BufferedReader in;
    //System.out.println("Listening of port " + sersoc.getLocalPort());
    //System.out.println("Waiting for connections...");
    while(true)
    Socket soc=sersoc.accept();
    socvec.addElement(soc);
    chatServerReadThread csrt=new chatServerReadThread(socvec, soc);
    in=new BufferedReader(new InputStreamReader(soc.getInputStream()));
    PrintStream out=new PrintStream(soc.getOutputStream());
    out.println("Connected to chat server");
    out.flush();
    data= in.readLine();
    for(i=0;i<socvec.size();i++)
    soc=(Socket)socvec.elementAt(i);
    out=new PrintStream(soc.getOutputStream());
    out.println(data + " connected");
    out.flush();
    //System.out.println(data + " connected");
    csrt.start(); // error is comming from here..... plz help me.
    class chatServerReadThread extends Thread
    Vector socvec;
    PrintStream out;
    chatServerReadThread(Vector socvec, Socket soc)
    this.socvec=socvec;
    try
    out=new PrintStream(soc.getOutputStream());
    }catch(Exception e){}
    public void run()
    try
    String data;
    Socket soc;
    BufferedReader in;
    while(true)
    for(int i=0;i<socvec.size();i++)
    soc=(Socket)socvec.elementAt(i);
    in=new BufferedReader(new InputStreamReader(soc.getInputStream()));
    if(in.ready())
    try
    data=in.readLine();
    if(data.charAt(0) == ']')
    data = in.readLine() + " exited";
    //System.out.println(data);
    socvec.removeElement(soc);
    for(int e=0;e<socvec.size();e++)
    soc=(Socket)socvec.elementAt(e);
    out=new PrintStream(soc.getOutputStream());
    out.println(data);
    out.flush();
    else
    for(int e=0;e<socvec.size();e++)
    soc=(Socket)socvec.elementAt(e);
    out=new PrintStream(soc.getOutputStream());
    out.println(data);
    out.flush();
    }catch(Exception e){socvec.removeElement(soc);}
    }catch(Exception e){e.printStackTrace();}
    first i ve made the jar file of this class
    jar cvf chatServer.jar chatServer.classafter getting the jar chatServer.jar. I ve opened the .net dos prompt and
    type this command which ll make dll file automatically....
    > jbimp /t:library chatServer.jar
    And you'll see the following output:
    Microsoft (R) Java-language bytecode to MSIL converter version 1.1.4322.0
    for Microsoft (R) .NET Framework version 1.1.4322
    Copyright (C) Microsoft Corp 2000-2002. All rights reserved.
    Created chatServer.dll
    I cant get the problem origin from where it is comming, when i tried to convert it into .dll file it shown an error that, it did not recongnized the method in first class
    public static void chatServerReadThread.start() method
    is not recognized by .net dos prompt commnad. But when i omit this method it gets created the .dll file. This start method is basically the default method of thread class that run the thread from the same class..
    By vewing the code u can visulize the thing,, i ve marked the code from where the error is comming.
    Plz do it as soon as possible, i ll waiting for ur reply......
    I ll be really thanking u for that....
    Thanx and regards
    Niraj Kumar Singh

    I wonder if this will work:
    jbimp /t:exe chatServer.jar
    Your chatServer is an application that can be started from the commandline.
    A dll is a library to be used in com, com+, other executables or ....

  • How to load a java class at server start-up

    Hi,
    I have one custome java class that is being referenced by all the applications deployed in OC4J container. How can I load that class automatically and be evailable in the path at server start-up time. Is there an option available to give the class name that also gets loaded automatically.
    Thanks

    To me, you have two mixed issues.
    1. OC4J supports a startup/shutdown model where a named class will be invoked when the container is started (or stopped).
    This is described in the doc here:
    http://download-west.oracle.com/docs/cd/B32110_01/web.1013/b28952/startclas.htm#CIHECEIB
    Note that this specifically calls the methods that are implemented from the respective OC4JShutdown and OC4JStartup interfaces -- the class that is instantiated and called here is not available to all other applications by default. This is more to suit the need where something needs to be done when the container is started/stopped.
    2 The next option is where you just want to make a class available to all applications deployed to the container. For this we provide the shared-library mechanism. Using this you can either make use of the implicit global.libraries shared-lib in which you simply drop JAR files into the j2ee/home/applib directory whereupon the classes will become available by default to all applications. Or you can choose to install a shared-library that contains your specific classes (in a JAR file) and then import that into the default application whereupon the configuration will be inherited by all deployed applications.
    cheers
    -steve-

  • How to load a java class when application is at first time browsed.

    Hi
    How can i load a simple java class on application startup.
    For servlet it could be done using "load on startup" tag in web.xml
    but how could the same be achieved for a simple java class.
    Thanks

    Hi
    Code is given below....
    package com;
    import java.io.IOException;
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    public class Test {
    Test()
         HttpServletRequest request=null;
         HttpServletResponse response=null;
         RequestDispatcher requestDispatcher = request.getRequestDispatcher("a.jsp");
         try {
              requestDispatcher.forward(request,response);
         } catch (ServletException e) {
              System.out.println("success");
              e.printStackTrace();
         } catch (IOException e) {
              System.out.println("success 1");
              e.printStackTrace();
         finally
              System.out.println("success 2");
         System.out.println("success 3");
    }Web.xml :
    <servlet>
            <servlet-name>simple</servlet-name>
            <servlet-class>com.Test</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
      <servlet-mapping>
          <servlet-name>simple</servlet-name>
          <url-pattern>/init.do</url-pattern>
        </servlet-mapping>Error Trace :
    org.apache.catalina.core.StandardContext loadOnStartup
    SEVERE: Servlet /DispatcherTest threw load() exception
    java.lang.IllegalAccessException: Class org.apache.catalina.core.StandardWrapper can not access a member of class com.Test with modifiers ""
         at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
         at java.lang.Class.newInstance0(Class.java:344)
         at java.lang.Class.newInstance(Class.java:303)
         at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)
         at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:925)
         at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3857)
         at org.apache.catalina.core.StandardContext.start(StandardContext.java:4118)
         at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1069)
         at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1162)
         at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
         at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
         at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1304)
         at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1568)
         at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1577)
         at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1557)
         at java.lang.Thread.run(Thread.java:595)

  • Converting Java class file to .dll

    Dear all,
    Is there any way to convert a Java class file to a .dll file?
    (Background being that there is a software that only allows callouts to DLLs and the method I have developed is in Java so need to convert it to a .dll)
    Any insight/advice/pointers are most appreciated.
    Thanks much,
    David

    Hi there,
    Yes you can convert a Java Class to DLL file using Microsoft Visual J#.NET (Installation required Visual Studio.NET) you can download it from the microsoft site.
    www.microsoft.com/downloads
    then go for search below in combo box(Visual J#.NET). After installation open new project select class library. write your java code(not fully supported j2se). build your application. All the Java Code is embeded in dll. Found at e.g. C:/JavaToDll/bin/debug/JavaToDll.dll This is a way to convert Java Code to a dll. frankly speaking i do not like .NET (copy of Java Technology must be baned completely).
    Thanks
    Please correct if i am wrong.
    Yahya Kamran (Software Engineer)

  • How to obtain the Java environment in the already loaded dll

    Hi all!
    I try to implement a client GUI in Java. I load the static (c++) dll from the Java code, this work fine. But, I want to call also from the loaded dll to the client GUI, make a two-directional communication. How can I obtain the valid environment pointer in the c++ code?
    Can you please help me?
    Thanks very much
    JAttila

    There is a method that returns the environment.
    But, I want to call also from the loaded dll to the client GUI,In response to what? If a thread then you have to also register the thread.

  • Error loading java class.

    I'm tryng to use a simple java class in internal jvm.
    When I try to load it I get a lot of error like :
    0/0 MailHandler:7: cannot resolve symbol
    0/0 symbol : class Folder
    0/0 location: package mail
    0/0 import javax.mail.Folder;
    What did I forget ?
    I'm using Oracle 10.2.0.3 and the required classes seems to be into correctly loaded.
    Tks
    Tullio

    Hi,
    Check whether the class is available in the schema or in the sys schema with a public synonym
    select dbms_java.longname(object_name) from user_objects;
    select dbms_java.longname(object_name) from all_objects;

  • How to load java class from jsp page?

    hi all!
    Does anyone know how to load java class from jsp page?
    I try to load java class from jsp page.
    Is it possible to load java class fom jsp page?
    thanks and have a good day!

    What I mean is How to load/open java class file from jsp page?
    I think we can open Applet from jsp page by using
    <applet code=helloApplet.class width=100 height=100>
    </applet>
    but, how to open java class which is an application made by Frame?
    thanks and have a good day

  • Java Class loaded in Database.

    hi
    I have loaded a Java class into Oracle 8.1.6 database. I have created a procedure (call spec) for calling a method in that class.
    It takes 3 parameters (Server ip address, From,To). Actually the purpose of the program is to take parameters and send mails
    The Java program uses JavaMail. I have loaded all classes required and the class shows status as valid. When I try to execute the method through a pl/sql procedure it gives the following error.
    ERROR at line 1:
    ORA-29532: Java call terminated by uncaught Java exception:
    java.security.AccessControlException: the Permission
    (java.util.PropertyPermission * read,write) has not been granted by
    dbms_java.grant_permission to
    SchemaProtectionDomain(SANTOSH|PolicyTableProxy(SANTOSH))
    ORA-06512: at "SANTOSH.SENDMAIL", line 0
    ORA-06512: at line 2
    In Dbms_java package there is nothing called grant_permission .
    What may have gone wrong ???
    Thanks

    Maybe you should grant JAVASYSPRIV and JAVAUSERPRIV privilege to your db user
    first.
    Good luck!
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Santosh Nair ([email protected]):
    hi
    I have loaded a Java class into Oracle 8.1.6 database. I have created a procedure (call spec) for calling a method in that class.
    It takes 3 parameters (Server ip address, From,To). Actually the purpose of the program is to take parameters and send mails
    The Java program uses JavaMail. I have loaded all classes required and the class shows status as valid. When I try to execute the method through a pl/sql procedure it gives the following error.
    ERROR at line 1:
    ORA-29532: Java call terminated by uncaught Java exception:
    java.security.AccessControlException: the Permission
    (java.util.PropertyPermission * read,write) has not been granted by
    dbms_java.grant_permission to
    SchemaProtectionDomain(SANTOSH|PolicyTableProxy(SANTOSH))
    ORA-06512: at "SANTOSH.SENDMAIL", line 0
    ORA-06512: at line 2
    In Dbms_java package there is nothing called grant_permission .
    What may have gone wrong ???
    Thanks<HR></BLOCKQUOTE>
    null

Maybe you are looking for