Subscribe to Our Bi-Weekly AI Newsletter

NativeJARs - Native libraries (e.g. scientific computing) packaged into JAR (Java Archive) files.

Just like WebJars took popular client-side Javascript libraries like JQuery and packaged them in JAR files to be used in Java projects, NativeJARs does the same for popular scientific computing libraries like Cpython or the native components of TensorFlow.

NativeJars bundles those libraries so that they can be easily imported into Java projects. Sure, you could take those same libraries, zip them up and put them in a JAR file yourself. Or you could just put it in Docker. But sometimes you need native libraries in a JAR file, and NativeJARs makes that easy.

Once those libraries are packaged in the JAR, NativeJARs lets you call native functions from Java. For example, let’s say there’s an evaluation function for machine learning that someone wrote in TensorFlow. Well, you don’t have to reimplement it now, you can just call it. Need a beam-search implementation that’s only available in C++? Just call it.

NativeJARs is the bridge between native code and Maven, which acts as the package manager. NativeJARs relies on JavaCPP. More information about JavaCPP is available here.


Chris Nicholson

Chris Nicholson is the CEO of Skymind. He previously led communications and recruiting at the Sequoia-backed robo-advisor, FutureAdvisor, which was acquired by BlackRock. In a prior life, Chris spent a decade reporting on tech and finance for The New York Times, Businessweek and Bloomberg, among others.

A bi-weekly digest of AI use cases in the news.