JCOBridge.Examples.Templates
2.1.1
dotnet new install JCOBridge.Examples.Templates::2.1.1
JCOBridge Template Usage Guide
Getting Started
Install templates
- Run the following command on a machine where .Net Core is installed:
dotnet new install JCOBridge.Examples.Templates
Now you have installed different templates: a simple console app, a simple app will show an AWT frame, a simple app will invokes scala classes, a simple app will invokes .NET from Java
All templates targets both .NET Core 3.1 and .NET Framework (> 4.6.1)
Use one template
- Run the command to install the simple console app:
dotnet new jcobridgeConsoleApp
Run the examples
- Run the application setting the location of the JRE-JVM library:
dotnet run --framework netcoreapp3.1 --JVMPath:"C:/Program Files/Java/jre1.8.0_241/bin/server/jvm.dll"
dotnet run --framework net461 --JVMPath:"C:/Program Files/Java/jre1.8.0_241/bin/server/jvm.dll"
Advanced: .NET invoking JVM languages
A lot of new programming languages (see List of JVM languages) use a JVM as runtime environment. The ready made template jcobridgeScalaApp is an example able to run Scala code from a .NET environment:
Use jcobridgeScalaApp template
- Run the command to install the scala app:
dotnet new jcobridgeScalaApp
Run the examples
- Run the application setting the location of the JRE-JVM library:
dotnet run --framework netcoreapp3.1 --JVMPath:"C:/Program Files/Java/jre1.8.0_241/bin/server/jvm.dll"
dotnet run --framework net461 --JVMPath:"C:/Program Files/Java/jre1.8.0_241/bin/server/jvm.dll"
Advanced: JVM invoking .NET API
Another use of JCOBridge is to invoke .NET API from JVM (or JVM enabled languages). The jcobridgeJavaNativeApp template is the starting point to write code in JVM which invokes .NET API. Any JVM enabled language (see List of JVM languages) can be used instead of Java to invoke .NET API. The template can be the starting point to use IoT boards with ready made packages for GPIO management from any JVM enabled language.
Use jcobridgeJavaNativeApp template
This template needs a JDK to be used because the Java side needs to be compiled.
- Run the command to install the template app:
dotnet new jcobridgeJavaNativeApp
Compile the .NET side of the project
- In the project root folder run the following command:
dotnet build net/jcobridgeJavaNativeApp.csproj
Compile the Java side of the project (optional)
- This step is optional beacuse the template comes with a compiled version of JavaNativeApp.java. Otherwise, in the project root folder run the following command:
javac src/JavaNativeApp.java -cp OutputNugetCore/netcoreapp3.1/JCOBridge.jar
Run Java code
- In the project root folder run the following command:
java -cp OutputNugetCore/netcoreapp3.1/JCOBridge.jar;./src JavaNativeApp --CoreCLRRID:win-x64
or
- Open your preferred Java editor in the example root and run the java code.
-
.NETCoreApp 3.1
- No dependencies.
-
.NETFramework 4.6.1
- 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 |
---|
Added a new template which invokes .NET API from a running JVM.
The same template has a short stub where CLR invokes the JVM during an API invocation started from JVM: using DynJVM property a developer can access every class/object/field available within the JVM to complete a task.
The jcobridgeJavaNativeApp template can be expanded, using the others available or using the examples on https://www.jcobridge.com/, to create code which is able to manage events raised from JVM or CLR which invokes methods on CLR or JVM.
One example of events from JVM is available in the jcobridgeAWTApp: in that case the event is raised from the Graphical subsystem, but can be raised from any object.