JuggerNET FAQs


Please use the Site search feature in the top right corner if you cannot immediately find an FAQ for your question. Follow this link for the JunC++ion FAQs.

Code Generation

How do I import Java types into the code generator?
Before you can generate .NET proxy types, you need to import Java types into the code generator. How do you do that?

Why does the code generator generate so many proxy types?
Sometimes, the code generator generates hundreds or thousands of .NET types, and that's rarely desired. What's going on and what can you do about that?

Can I generate proxy types for all types in a package?
Sometimes you need .NET proxy types for all types in a Java package or a package hierarchy. How do you do that?

Can I break up my set of proxy types and put them into different assemblies?
Sometimes you have to separate sets of proxies into different assemblies. Can it be done and how?

Usage of proxy types

How do I create a Java array instance?
.NET and Java array types have some similarities, but also a lot of differences; array instantiation is one of them.

What else should I know about array types?
Some additional tidbits on using array types.

How do I create a Java string from a .NET string?
Information on the way strings are handled.

How do I create a .NET string from a Java string?
Information on theway strings are handled in the other direction.

Can I extend proxy types in .NET?
Proxy types feel so much like native .NET that this question often comes up.

Can I implement multiple callback interfaces in .NET?
A question related to the previous one.

Are proxy types thread-safe?
What are the threading-related limitations of proxy types?

Can I explicitly use Java synchronization from .NET?
In Java, you use the synchronized keyword; in JNI, you can use MonitorEnter() and MonitorExit() to gain exclusive access to a Java object. How can you do the same thing in .NET?

Are proxy types exception-safe?
What are the exception-related limitations of proxy types?

How do I handle Java exceptions in .NET?
Java code may throw exceptions. How do you handle them in.NET?

Can I throw Java exceptions from my .NET code?
Yes, but if you're a Java developer, be careful about a couple of things.

How do I cast a .NET proxy object to another proxy type?
We supply a From() method for that purpose, but you might not need it. This FAQ provides the background.

Can I find out which version of JuggerNET generated my .NET types?
Sometimes it is useful to know which version was used to generate proxies, if only to be aware of bugs that might be present in old, generated code.

Compilation & Linking

Do I need Visual Studio for the development process?
It's the dominant tool, but is it required?

Which .NET frameworks does JuggerNET support?
Can I use any C# compiler or do I need a particular version?

When should I use the strongly named runtime?
"Weakly" vs. strongly named assemblies is always an interesting topic. Read more about it here.

How do I set up a Visual Studio project which uses proxy types from scratch?
Sooner or later, you'll have to create a project to use the proxy types. What to you need to do in that case?


Which files do I need to deploy?
There are various DLLs in the distribution and this FAQ tells you which ones you need.

How is the "default" JVM picked at runtime?
The runtime can (on most platforms) find an installed JRE and use it if you don't explicitly specify one. How does that work?

When is the JVM loaded into my .NET process?
When exactly at runtime does the JVM come into play?

I have to use a legacy library that wants to load the JVM itself.
Can I still use your product?

It's always a challenge when two pieces of integration code expect to be in charge of a system resource. Here's how the Codemesh runtime handles this situation.

Is the system CLASSPATH used by my mixed Java/.NET application?
The system classpath is a "special" environment variable used by Java applications. How do .NET applications treat the system classpath?

Can I configure the classpath and other Java options in code?
In Java, you can pass command line arguments to provide configuration options like the classpath or the maximum heap size. How can a developer influence the initialization options for the JVM that is going to be used by the CLR process at runtime?

There is no configuration method for a JVM option I want to specify.
Am I out of luck?

So there are many configuration methods and elements, but I can't find one corresponding with a particular option. What should I do?

Which options do I need to configure?
There are so many configuration options. Which ones are crucial?

My proxy classes were generated for a Java version other than the one I want to run with. Will that work?
What are the compatibility rules for development time and runtime?

Is there anything special about running in an ASP.NET context?
There are a couple of things you should be aware of, even if you're an experienced JuggerNET user.

How can I debug the Java parts of my .NET application?
Sometimes you just don't know why a Java function is returning the value it is returning. This page tells you how you can debug into the Java parts of the application.

How can I debug my mixed Java/.NET application?
Really with any .NET debugger, but there are a few things you might want to know about proxy objects to help you interpret what you're looking at.

Why does my application crash on startup?
Some common issues causing a crash on startup.

Why does my application crash on exit?
A rare situation, but here's what to do if you run into it.

Copyright 2006-2015 by Codemesh, Inc., ALL RIGHTS RESERVED

frequently asked questions
home products support customers partners newsroom about us contact us