Using JNI in applets: impossible due to classloader limitations?

Hello,
I attempted to post this question on java.net but no one seemed to know the answer. I am especially hoping that the Engineers who work on the Java Plugin will comment on this question. Thank you.
http://forums.java.net/jive/thread.jspa?messageID=248215
Gili

Just a workaround: drag the Properties panel to the bottom dock (where the Timeline is). This suppose you are in Expert mode which you can achieve by enabling the fourth option in Preferences, General: Enable drag...

Similar Messages

  • Using shared actions is impossible due to software design

    Using the French version of Adobe Captivate 8 on OS 10.9.4, it is impossible tu use a shared action in an "advanced answer" in a quiz, since the layout of Adobe Captivate prevents from clicking the box to choose the variables to use. Now, either the property bar should be able to scroll, or it should be resizable. This is preventing from using a nice feature...

    Just a workaround: drag the Properties panel to the bottom dock (where the Timeline is). This suppose you are in Expert mode which you can achieve by enabling the fourth option in Preferences, General: Enable drag...

  • How to use JNI in an Applet?

    Can a native method can be invoken in an Applet?If it can,which knowledge of Java should be used and how to use it?

    You could I suppose if yo sign the applet (which, if the user accepts it, will allow it to use features otherwise not available to an applet because of the secure sandbox). However, I am not sure how you would deploy the necessary native library since it must be available to the native OS loader (ie, a file on the client machine). If you are deploying the applets (see WebStart perhaps) you could do it.
    But generally it is a poor idea to try to use JNI in an Applet, and this is probably something that you would not want to use outside of an intranet environment.
    Chuck

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

  • How to use JNI?

    hi all,
    i know that pure java can't disable alt+tab,i must use JNI with C language. i have a pile of codes to disable the alt+tab in C but i do not know how to do it in JNI...can anyone help?thanks in advance...
    these are my codes in C:
    Private Declare Function SystemParametersInfo Lib "user32" _
    Alias "SystemParametersInfoA" (ByVal uAction As Long, _
    ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
    Private Const SPI_SCREENSAVERRUNNING = 97
    Dim ret As Integer
    Dim pOld As Boolean
    Private Sub Form_Load()
    'The line below calls the function and passes
    'the constant and TRUE to fool Windows into thinking
    'the screensaver is running and FALSE to do the opposite...
    ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, pOld, 0)
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    'NOTE: THIS MUST BE SET TO FALSE WHEN
    'THE FORM OR APP CLOSES
    'If you do not set it to false, these keys will not work
    'with any app, or with anything in the Windows Environment...
    ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, pOld, 0)
    End Sub

    There really isn't a lot to using JNI.
    There are examples on Sun's website:
    http://developer.java.sun.com/developer/onlineTraining/Programming/JDCBook/jniexamp.html
    There is also a little more simple example at:
    http://www.inonit.com/cygwin/jni/helloWorld/java.html
    Basically, here are the steps:
    1) Create a simple java applet that will call your C/C++ code.
    For practise, I would just use the HelloWorld example from www.inonit.com:
    package example.jni;
    public class HelloWorld {
         private static native void writeHelloWorldToStdout();
         public static void main(String[] args) {
              writeHelloWorldToStdout();
    2) Name the file with the code above HelloWorld.java and compile it:
    javac HelloWorld.java
    3) Use javah to generate the C header file:
    javah example.jni.HelloWorld
    (You may need to cd to the parent directory of 'example', in this case)
    4) The above line should create a example_jni_HelloWorld.h header file.
    Use this header file in your C/C++ DLL. Make sure your C/C++ compile knows where to find jni.h. In my compiler, I added the following paths:
    C:\J2SDK1.4.1\INCLUDE\
    C:\J2SDK1.4.1\INCLUDE\WIN32
    5) The trickiest part about JNI is passing in and returning parameters.
    If you don't have to pass in or return any parameters, then you're almost done. Replace your C/C++ function protocol with the protocol in the header file you generated. Compile your DLL.
    6) Copy the DLL to a path that it will be found by your Java Applet. (If running on Windows, this would be your System32 or System directory.)
    7) I also had to edit my Path environment variable to include the Java Runtime bin directory. On my machine it was: C:\J2SDK1.4.1\jre\bin
    8) Try running your java applet:
    Java example.jni.HelloWorld
    Good Luck!

  • Memory Allocation problem when using JNI

    For a Project we need to interface Labwindows-CVI/ Teststand with an application written in Java. we are using JNI. The code uses JNI_CreateJavaVM to start a JVM to run the Java interface code. The code did run for some time , but now ( without any obvious change nor on the CVI side neither on the Java side) JNI_CreateJavaVM fails with -4 error code, that means that the start of the JVM failed due to memory allocation failure. First investigation showed, that even if Windows Task Manager shows about 600M free physical memory, you can allocate in CVI only about 250M as a single block at the time we are calling  JNI_CreateJavaVM. That might be a little bit to less as we need to pass -Xmx192m to the JVM to run our code. Unfortunately just increasing the physical memory of that machine from 1.5G to 2G doesn't change anything. The free memory showed by Task Manager increases, but the allocatable memory block size does not. Are the any trick to optimize CVI/Teststand for that use case ?  Or maybe known problems with JNI ?
    Solved!
    Go to Solution.

    hi,
    have you tried other functions to allocate memory?
    the -Xmx command only sets the maximum heap size. You can try to use -Xms. This command sets the initial Java heap size. 

  • How can I use JNI in JDeveloper???

    hi
    I have a native mathod,it can work very well use JCreator or JDK's Java command.
    But it can't work in Jdeveloper with the errors :
    java.lang.UnsatisfiedLinkError: no JniConvert in java.library.path
    void java.lang.ClassLoader.loadLibrary(java.lang.Class, java.lang.String, boolean)
    void java.lang.Runtime.loadLibrary0(java.lang.Class, java.lang.String)
    void java.lang.System.loadLibrary(java.lang.String)
    void myInterMediaPackage.ArithmaticBean.<clinit>()
    void DrawTest.init()
    void DrawTest.main(java.lang.String[])
    Who have used JNI in JDeveloper or can help me?
    I appreciate anyone's help;

    Dennis ,
    Thank you very much.
    I have resolved that question according to your second option.
    thank you again!
    Good luck.
    2 options, that I know of (windoze, right?):
    1. Add "-Djava.library.path=c:\<blah>\" (the location of your native DLL) to the "Java Options:" field in the "Project Settings/Configurations/Development/Runner" window. OR
    2. Put your DLL in a folder that is on your PATH (e.g., c:\winnt\system32).
    If you deploy it to a jar, and put the DLL in there, I'd think it would see it - but I haven't gotten THERE, yet! :-P
    Later.
    Dennis

  • I have paid for ipages 09 on 15/05 but never succed to enter the serial code. After 45 days, altough I was charged by 20 chf, I cannot completely use all ipages tools(impossible to save ). How can I get again the serial code I paid for?

    i have paid for ipages 09 on 15/05 but never succed to enter the serial code. After 45 days, altough I was charged by 20 chf, I cannot completely use all ipages tools(impossible to save ). How can I get again the serial code I paid for?

    Getting the request for a serial number means that at some time you had the iWork ’09 trial installed. You need to delete the trial & then reinstall from the boxed DVD or the Mac App Store. The files to delete are the iWork ’09 folder from the main HD > Applications; the iWork ’09 folder in HD > Library > Application Support & the individual iWork application plist files found in HD > Users > (your account) > Library > Preferences for each user. The easiest way to fix the problem is to use Yvan Koenig's AppleScript that removes the files. You can find it on his box.com account in for_iWork'09 > other_iWork'09 items > uninstall iWork '09.zip. Download uninstall iWork '09.zip, decompress it, open it in AppleScript Editor and click the Run button.
    Apple's support article on the subject says it's due to having a copy of the trial that is a higher version that the one you've purchased, but I'm not sure that is very common. This problem started with Snow Leopard & it seems to be some code in the iWork installers that doesn't do what it should.

  • I have problem when use 'JNI'

    Hello every body,
    I have an application language "C", which, I must make a wrapper java.
    To do this using "JNI".
    First I try to understand the functioning of JNI, I try it for the first example helloWorld.
    all steps works well, and dynamic library was well create: libHelloWorld.so
    The execution, it does'nt work
    When I try to java Helloworld, here's what I see:
    Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/java/jniexamples/HelloWorld/libHelloWorld.so: Can't load IA 32-bit .so on a IA 32-bit platform
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
    at java.lang.Runtime.loadLibrary0(Runtime.java:822)
    at java.lang.System.loadLibrary(System.java:993)
    at HelloWorld.<clinit>(HelloWorld.java:7)
    Although I added the link to my library like this:
    export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / home / Install / java / jniexamples / HelloWorld
    I dont understand where is the problem may be in the version I use of java, I use jdk-1.5.0-13?
    Thank you in advance for your help
    Regards
    Daniel

    Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/java/jniexamples/HelloWorld/libHelloWorld.so: Can't load IA 32-bit .so As a guess that would suggest that it found a file (thus the name is correct) but that the contents do not represent a shared library that the VM will load.
    That is usually because the compile/link options are wrong for the target VM.

  • 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 to implement button installer using JNI or any native code

    Hello All,
    I am trying to implement installer that install button on internet explorer using JNI or native code so i am new to this technology .please suggest some approach.
    Thanks All

    Why would you ever do that?
    There are a host of languages that will do that and many scripting. You can easily write Applets and services in Java that will work in IE, but to just add a button... just doesn't make sense.

  • JNI with applet

    hello
    I want to use JNI with the applet ,could any one give me helloworld applet using JNI
    Thank you

    hello
    I want to use JNI with the applet ,could any one give
    me helloworld applet using JNI
    Thank youhttp://java.sun.com/sfaq/index.html#prevent

  • How to invoke a window using JNI?

    Hello,
    I need to invoke a C++ DLL from a Java Applet using JNI. The DLL should display an image in a separate window. Further I should be able to set the position of the DLL window, and should be able to minimize, maximize the DLL window from the Applet.
    Well I am fairly new to C++. Any suggestions regarding how I should proceed?
    GLim

    Hi jschell,
    Thanks for the reply.
    But I am sorry that I am not sure whether I understood your point. What I understood is I make an exe that displays the image and run it from Java like SHELL function in VB. In that case can I specify a particular image to be loaded from the applet? The applet and exe needs to be constant touch as the location , size etc of the window displaying the image could be controlled by the applet.
    I have created a DLL which displays the specified the image in a modeless dialog box. I have succeded in invoking the DLL from applet. But the dll window hangs as soon as it loads! I got a suggestion to implement the display of modeless dialog box inside thread. Now I am investigating how to implement thread :) Please send in your advice if you have any?
    Also it could be real help if you could mentions common problems that might occur in such situations.
    Thanks in advance
    gLim

  • After enabling cellular data, i am receiving mails even if disable "use cellular data for mail", due to this data usage usage use is more, if we have fix please let me know

    Phone Model and OS
    Model - iphone 5
    IOS 8.0.2
    Problem Description
    After enabling cellular data, i am receiving mails even if we disable "use cellular data for mail", due to this data usage usage use is more, if we have fix please let me know.
    Steps:
    1. Enable Cellular Data
    2. Disable mail on "use cellular data for mail
    3. check whether mail is received or not
    tried multiple times and i am getting more billing amount because of data usage

    Mail isn't the only app using data. Turning it off there has no effect whatsoever on whether the rest of iOS or other apps you have installed. In fact most apps use data these days, at a minimum for Notifications and often for gameplay and other features.

  • How can i call a VB6 project from my java application using JNI

    hi
    can anyone tell me the procedure of calling a VB6 project from any java application using JNI
    if anyone does know then tell me the detail procedure of doing that. I know that i have to create a dll of that VB6 project then to call it from the java application.
    if anyone know that procedure of creating dll file of an existing VB6 project please reply
    please if anyone know then let me know

    Ahh, kind of a duplicate thread:
    http://forums.java.sun.com/thread.jspa?threadID=631642
    @OP. You could have clarified your original post and the relationship of your question to java. You did not need a new thread.
    � {�                                                                                                                                                                                                                                                                                                                                                                                                                                                               

Maybe you are looking for

  • Mulit Mapping - Payload Node Missing in Response in SXMB_MONI

    Hello all,       I am using the new extended Inteface Determination to Split in a 1:N IDOC to Files scenario       In SXMB_MONI I don't see the Payload node under Response. And also there are no child messages created where it shows the messages are

  • SAINSBURYS VOUCHERS STILL NOT RECIEVED bt worst is...

    bt is the worst company i have been with heres the problems signed up for bt had to pay a deposit off 40pounds   even tho i have a great credit history i assumed i would get that back with in a month but found out i will recieve that back in  6 month

  • IAS 6.0 and Rewrite rules

    Hi, I have worked with Apache JServ in which you have the concept of Rewrite rules in one of the property files. How does the same concept work with iAS 6.0? Thanks Uzma

  • Lock my self out my macbook

    How do I reset my password lock myself out of my computer

  • Segfault while downloading with pacman

    Hello y'all, The headline pretty much says it. I tried writing up a PKGBUILD for CCP4 which involved sourcing an install script (which changed some environment variables, nothing that should have an effect on pacman usage after restart IMHO) and scre