JCOBridge 2.2.0
dotnet add package JCOBridge --version 2.2.0
NuGet\Install-Package JCOBridge -Version 2.2.0
<PackageReference Include="JCOBridge" Version="2.2.0" />
paket add JCOBridge --version 2.2.0
#r "nuget: JCOBridge, 2.2.0"
// Install JCOBridge as a Cake Addin
#addin nuget:?package=JCOBridge&version=2.2.0
// Install JCOBridge as a Cake Tool
#tool nuget:?package=JCOBridge&version=2.2.0
JCOBridge main features
Field proven Built on top of the field proven DLR plugin available in the Sinapse platform (https://www.sinapsesystem.com), JCOBridge guarantees the best performance in JVM and CLR worlds integration.
CLR : Available for .NET Framework for Windows on www.jcobridge.com and .NET Core on x86/x64/Arm/Arm64, Linux x64/Arm/Arm64 (other platforms/architectures available on demand)
- Retrieve JVM class
- Instantiate JVM objects
- Invoke static methods
- Invoke instance methods
- Get/Set static fields
- Get/Set instance fields
- Use dynamic access to write code in a seamless way as it is done in Java language
- Use specific interface to direct manages methods and fields
- User interface Controls, properties and events management
- Integrates Java UI (AWT/Swing/SWT) into WPF/WinForms (from version 2.2)
JVM : Available for .NET Framework on www.jcobridge.com and .NET Core Windows x86/x64/Arm/Arm64, Linux x64/Arm/Arm64 (other platforms/architectures available on demand)
- Retrieve CLR Type
- Instantiate CLR object
- Invoke static methods
- Invoke instance methods
- Get/Set static properties
- Get/Set instance properties
- Set Delegates
- Subscribe/Unsubscribe events
- Integrates WPF controls into AWT/Swing window (experimental on .NET Core, use the version on Windows in production)
- Integrate WinForms controls into AWT/Swing window (experimental on .NET Core, use the version on Windows in production)
- Integrate complex .NET Graphical user interfaces objects into AWT/Swing window (experimental on .NET Core, use the version on Windows in production)
- User interface Controls, properties and events management (experimental on .NET Core, use the version on Windows in production)
JCOBridge Coding simple example
Imagine you have the following Java Class:
public class MyJavaClass
{
//Static member
static public String myStaticJavaHelloWorld()
{
return "Hello Static World from Java!!";
}
//Instance member
public String myJavaHelloWorld()
{
return "Hello World from Java!!";
}
//Instance member
public double myJavaAdd(double a, double b)
{
return a+b;
}
}
you can call the previous Java class from C# using JCOBridge access to static and instance methods.
How to call Java code
Define a class that use the Java code:
class MyJavaUsingClass : SetupJVMWrapper
{
public void Execute()
{
string hello = DynJVM.MyJavaClass.myStaticJavaHelloWorld();
Console.WriteLine(hello); //Print "Hello Static World from Java!!"
var myJavaClass = DynJVM.MyJavaClass.@new();
hello = myJavaClass.myJavaHelloWorld();
Console.WriteLine(hello); //Print "Hello World from Java!!"
double result = myJavaClass.myJavaAdd(2.0, 3.0);
Console.WriteLine("{1:0.0}",result); //Print "5.0"
}
}
Add JCOBridge initialization before call the Execute method.
using MASES.LicenseManager.Common;
using MASES.JCBridge.C2JBridge;
using System;
static void Main(string[] args)
{
MyJavaUsingClass JavaTest = new MyJavaUsingClass();
JavaTest.Execute();
}
Other JCOBridge Examples
More information and more complex examples on www.jcobridge.com. Meanwhile try the NuGet templates package with ready to use projects. NuGet JCOBridge Templates
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.1 is compatible. |
.NET Framework | net461 is compatible. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|
Version 2.2.0:
This update adds new wrapper libraries for Windows and Linux.
News in this update:
- On platforms, where WindowsDesktop is supported, it is possible to integrate a Java Component within the WPF/WindowsForm main application.
- Added new Java event management (Mouse, Keyboard, Focus, etc) to help users with ready made classes.
- Now shared objects between CLR and JVM are available on .NET Core
- Added win-arm, win-arm64, linux-arm and linux-arm64 wrapper libraries.
- Runtime Identifier is no more mandatory, Java Initialize does not needs it from the command line; if it is not found automatically the user must specify it.
- Added functions to start external thread and daemon thread from .NET
- Minor change on API and interfaces to better cover some behaviors
- Solved minor issues.
Known limitations:
- .NET Core Type identification from Java code needs, in some condition, an explicit assembly qualified name. Some types reported to be in one assembly really is managed from another one: e.g. System.Uri, System.Runtime.dll (https://docs.microsoft.com/it-it/dotnet/api/system.uri?view=netcore-3.1) really is managed from System.Private.Uri.dll.