bytedeco/javacpp

The missing bridge between Java and native C++

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 43 minutes ago
Added to GitGenius on September 14th, 2026
Created on April 21st, 2014
Open Issues & Pull Requests: 113 (+0)
GitHub issues: Enabled
Number of forks: 597
Total Stargazers: 4,707 (+0)
Total Subscribers: 168 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 2.2 hours
Mean response time: 23.2 days
90th percentile: 16.3 days
Tracked items: 27

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 12
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 611 days
Stale 30+ days: 12
Stale 90+ days: 11

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • help wanted (14)
  • question (14)
  • bug (8)
  • enhancement (7)
  • duplicate (6)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

JavaCPP is a bridge between Java and native C++ that provides efficient access to C++ code from within Java applications. The tool works by exploiting the syntactic and semantic similarities between Java and C++, using JNI under the hood to enable interoperability across all Java SE implementations as well as Android, Avian, and RoboVM.

The problem JavaCPP solves is the need to call native C++ code from Java without requiring intermediate language definitions or code generation frameworks. Rather than inventing new languages or relying on wrapper generators, it maps C++ language features directly to Java constructs. This approach handles complex scenarios including overloaded operators, class and function templates, callbacks through function pointers, functors, virtual functions, member function pointers, nested structures, variable-length arguments, nested namespaces, virtual and multiple inheritance, passing and returning by value or reference, exceptions, destructors, and smart pointers.

Developers should choose JavaCPP when they need straightforward access to existing C++ libraries from Java without the overhead of learning specialized binding languages. The tool suits projects that require tight integration with C++ code and can tolerate JNI-based performance characteristics. The README explicitly compares JavaCPP to numerous alternatives including SWIG, SIP, Cython, cppyy, JNA, BridJ, and Panama Native, positioning itself as a more natural mapping approach that avoids intermediate language definitions.

The project maintains active development with regular commits addressing bug fixes and feature enhancements. The codebase shows consistent refinement of the core JNI bridging mechanism and expansion of supported C++ language features. Documentation is kept current alongside code changes, and the project accepts community contributions through pull requests with responsive feedback on issues.