Using Obj-C class from Java, is there a way? - java

I'm working on a project that requires me to run this code in java, but for a brief part of the code I want to access a class that is written in Objective-C. I want to pass parameters through the class then retrieve the data back into my Java file.
So to try to explain it clearer. My Java code needs to be able to access an Objective C file and retrieve data that I can implement in Java. My current IDE is eclipse, because I need to do this for android. Is there any possible way to make this work?

You can use Rococoa, http://code.google.com/p/rococoa/, or you can use JNI
Here is a similar question with answer: Wrapping an existing application with JNI

Have a look at JIGS, the Java Interface to GNUStep. http://www.gnustep.it/jigs/

Related

How do classes in the Java standard API interact with the OS?

I've been trying to find an answer to this for some time, but I think part of my problem is that I don't really know how to phrase my question. I understand the that JVM ultimately preforms all the system calls at run-time that the Java program needs to make, my confusion is about the underlying way that Java classes tell the JVM to do this.
Take for example, the File class in the standard Java library. As far as I know, this is considered the most fundamental API for opening/creating files in Java. But, File is just another class right? So in theory I should be able to write my own File class from scratch which doesn't utilize the pre-exisitng one, right? How would I do that? What is happening inside the File class that tells the VM to actually create the file? I looked at the source code for the File class, and it looks like it calls another class called VMFile, but I could find no explanation of what VMFile is. When I looked at the VMFile source code, it just had function declarations with no definitions.
Thank you for your help.
The Java Native Interface (JNI) is the glue between Java classes and the OS. Native methods have a 'native' attribute (look it up in the JLS).

Found code to extract text from PDF, but it is not written for Android, can I still add it to my project?

I found simple code to extract text from PDF files here, and I'm wondering if there is an easy way to add it to my existing app in order to add this functionality?
Yes that is doable since the code is written in C. It will be complex if you are a beginner as you will have to use Android NDK to interface the C code to Java using JNI

Using [java.util] and [java.lang] in c# using ikvm

I am trying to access a java class via C# and I am not sure on how to pass the required parameters to instantiate it.
I need to pass an object of type [java.util.Properties] to the constructor and I need your inputs on which jar/java class files I need to convert to dll using IKVM..
From the java implementation, it looks like I need to include java.util.dll and java.lang.dll. Any help will be appreciated!
Kindly let me know if the above description is not clear!!
I had to reference IKVm.OpenJDK.Core.dll in my c# project to start using java.util.Properties.
If you want work with IKVM then you need ever IKVM.OpenJDK.Core.dll. See also in the wiki.

using python class methods inside java

I have three different classes written in python. They contain several methods which I want to use them inside my java program (creating objects from these python classes and use these objects to call the methods). Actually my level in java might be intermediate. However, i am absolutely new in python. I have read that it is possible to use Python class methods inside java but there is no clear way that is well explained. So, please help me with a script or a tutorial or any advice that can help understanding using python classes methods in java.
Jython is the way to go. If you have a couple of hours I would recommend you go over the tutorial for it.
If you are curious to see how jython can be used inside java skip to:
http://wiki.python.org/jython/LearningJython#integrating-jython-python-into-java

How to include Header File (.h) in Java

I want to use this which says to use a particular method I have to include tcutil.h in my java code. Can anybody help me, how to do that ? Another point: we can easily create an header file and include it in to C code but why reverse is so hard (means lots of work have to do) ? May be stupid, but little bit hints will be helpful.
This might be more complicated than you think. The .h files are C language include files which usually describe the methods and data structures of a C-library. You would have to Java Native Interface (JNI) in order to include these libraries in your java code.
You have basically two options
Go through a tutorial like this
Or look for a java implementation.
There're already java-bindings available.
You can't include C/C++ headers into java source code.
Maybe you want to define a native implementation for a java method.
http://java.sun.com/docs/books/jni/
They seem to have a Java API, which you need to download and include in your classpath. You can't include a C header file in Java.
you cannot do it directly in java. You have to include the header files in your C program and use JNI to call the functions that you want to use.
Refer this : JNI reference
To run native code from Java, you need using JNI technology. Try http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jni.html or http://docs.oracle.com/javase/6/docs/technotes/guides/jni/spec/functions.html of google by keywords "JNI, tutorial".
The page mentions that there is an API for Java available, but does not show it. You should ask them for the Java documentation. Preferrably, the API should be a JDBC driver.

Categories