Skip to content

miaolinopenvox/java4cpp

 
 

Repository files navigation

Java 4 C++ (java4cpp)

A utility for creating C++ wrapper classes for a Java Library(.jar file) or class file.

Build

To build one needs:

Use the command:

mvn package

OR

  • An IDE bundled with both maven and a JDK such as Netbeans, IntelliJ, or Eclipse.
    • Netbeans will open a maven project with File -> Open Project just like Netbeans generated Ant projects.
    • IntelliJ and Eclipse both have options to import maven projects.

Run

Run directly with:

java -jar target/java4cpp-1.2-SNAPSHOT-jar-with-dependencies.jar

Possible options are:

 -?,--help              Print this message
 -c,--class <arg>       Single Java class to extract.
 -h,--header <arg>      Output C++ header file.
 -j,--jar <arg>         Input jar file
 -l,--limit <arg>       Maximum limit on classes to extract from
                        jars.[default=200]
 -n,--namespace <arg>   C++ namespace for newly generated classes.
 -o,--output <arg>      Output C++ source file.
 -p,--package <arg>     Java Package prefix to extract

Example

Given the following java class:

public class Simple {

    final int value;

    public Simple(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }
}

Compiled just with:

 javac Simple.java

C++ header and sources could be generated with:

java -jar ../../target/java4cpp-1.0-SNAPSHOT-jar-with-dependencies.jar -c Simple 

So that the C++ code to use the class could be just this:

#include "simple.h"
#include <iostream>

using namespace simple;
using namespace std;

int main(int argc, const  char **argv){

        Simple s(4);
        cout << "s.getValue() = " << s.getValue() << endl;

}

For complete compile and link instructions, Visual Studio Solution and Project files etc. see the examples/simple subdirectory. For more advanced options see the other examples directories( TO BE DEVELOPED ) and/or wiki (https://github.com/wshackle/java4cpp/wiki)

Build Status

About

Utility to produce C++ wrapper classes for any Java library (.jar file)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 55.5%
  • C++ 41.6%
  • Shell 2.1%
  • Batchfile 0.8%