Pergunta

Escrevemos um programa Java com o qual procuramos usar e interagir do C#. Quais são as nossas opções? O idealmente é possível compilar o aplicativo Java como uma biblioteca (.dll) que poderíamos fazer referência a C# talvez usando P/Invoke. Isso, no entanto, não parece ser uma opção de acordo com as primeiras pesquisas online.

Optamos por poder usar asp.net para criar um mecanismo de pesquisa alimentado pelo código Java; portanto, se isso abrir para qualquer outra opção, informe -nos.

Foi útil?

Solução

Me desculpe cannot Ligue para Java code / classes Directly do código C#.

Uma maneira de fazer isso é wrap até suas aulas de java em um java Web Service e ligue para as aulas indirectly Através dessa interface de serviço da web no seu código C#.

Outra maneira é usarjavareg.exe que expõe as aulas de Java como COM. Você pode encontrá -lo no seguinte local:

C:\Program Files\Microsoft VisualStudio\VIntDev98\bin\javareg.exe

Postagens a seguir podem ajudar também

Outras dicas

A abordagem mais simples provavelmente seria publicar a funcionalidade da sua biblioteca Java como serviços da Web e adicionar uma referência na Web do seu aplicativo ASP.NET.

Java não deve ser incorporado em outro programa, então você precisa de uma ponte. A solução mais simples é usar um soquete: criar um processo Java que escuta os comandos em um soquete. No C#, envie os comandos para o soquete e leia as respostas.

O principal problema aqui é a serialização, mas se você usar XML, não é mais uma dor tão grande. Experimente a serialização XML integrada (Veja este artigo) ou estruturas personalizadas como Xstream ou Simples.

Certamente é possível embrulhar Java em um .dll e faz parte da plataforma Java principal há mais de 10 anos. O JNI (Java Native Interface) possui uma interface para incorporar uma JVM no seu código, o que significa que você pode executar as classes Java usando a ligação do estilo C. Observe que isso exigirá que você escreva um invólucro C simples, existem amostras dentro:http://java.sun.com/docs/books/jni/html/invoke.html#11202

Como sugerem algumas dessas outras postagens, às vezes é desejável estar menos acoplado, portanto, você pode considerar usar outro design. Uma opção seria um banco de dados simples, onde o aplicativo Java faz regularmente solicitações do código C#. Se você deseja um acoplamento mais apertado, para que as devoluções de chamadas, você pode ver interfaces distribuídas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top