Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6557961
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T13:08:24+00:00 2026-05-25T13:08:24+00:00

I’m defining a java class from C with the JNI call DefineClass() and then

  • 0

I’m defining a java class from C with the JNI call DefineClass() and then I register the native callbacks for the methods in the class that are native. The class has two static methods, both of which are native. I use RegisterNatives() to register the native functions. Both calls succeed.

But when I reference these native methods from my Java code I get java.lang.UnsatisfiedLinkError myPackage.myClass.myMethod(I)V

But I know that DefineClass returned a class object for myPackage.myClass and I know that
myMethod(I)V has been registered as a method on that class.

I get this failure just as it is about to execute main() – where the call to my native method is (for the time being, for testing).

As a test, I tried calling DefineClass twice on the same JNIEnv to see what happened. I get a duplicate class definition error. I’ve also tried calling FindClass() after defining it and the JNIEnv returns a reference to the defined class.

Thus I’m definity creating the class dynamically, but it fails when I try to refer to its methods.

Any ideas? All input appreciated.

Platform: Windows, 32 bit code on 64 bit XP.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T13:08:25+00:00Added an answer on May 25, 2026 at 1:08 pm

    Seems that you cannot define a native method using DefineClass() and call that native method directly from your injected code. You have to have a trampoline method in your injected class (in the form of Java byte codes) that then calls your native methods. Only then will it work. Took me three days to work that out.

    Another gotcha is make sure that your injected code is valid. The code I was trying looked valid, but on closer inspection I was pulling a 4 byte sized constant from the constant pool as an operand for an 8 byte instruction. So that failed the verifier. Once that was fixed (and the native trampoline), it all worked.

    However to get there through all the various permutations I had to try took 3 days. Felt good when if was working though.

    How to do the trampoline? See the examples (in C) that ship with the Java SDK. They are quite long and not appropriate for posting here.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm parsing an RSS feed that has an ’ in it. SimpleXML turns this
That's pretty much it. I'm using Nokogiri to scrape a web page what has
I've got a string that has curly quotes in it. I'd like to replace
link Im having trouble converting the html entites into html characters, (&# 8217;) i
I want to count how many characters a certain string has in PHP, but
For some reason, after submitting a string like this Jack’s Spindle from a text
Basically, what I'm trying to create is a page of div tags, each has
I have a French site that I want to parse, but am running into
I'm using v2.0 of ClassTextile.php, with the following call: $testimonial_text = $textile->TextileRestricted($_POST['testimonial']); ... and
I am currently running into a problem where an element is coming back from

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.