A DLL do java... como fazer? [RESOLVIDO]

13 respostas
A

Olá

Eu desenvolvo em vb.net e agora estou iniciando em java.

No vb.net, C#… tem a opção de criar classes e gerar DLL que podem ser usadas em outros projetos mais ficam com o código fechado, ou seja, podem ser instanciadas no projeto e utilizadas.

Outro dia um cara me pediu uma função que faz a conexão com o SQL Server… eu mandei uma DLL fechada pra ele… que conecta tanto o MySQL como o SQL Server.

Ele instanciou no projeto dele e utilizou… só que não viu o código de como eu fiz.

No java crio classe, copio de um projeto pra outro mais o código esta todo aberto.

Como posso fazer isso em java?

13 Respostas

rmendes08

É bem simples, primeiro você deve compilar suas classes. Após a compilação você cria um arquivo .jar. Procure pelos comandos javac e jar.

A

Pra ver se entendi…

Eu crio um projeto só com a classe e depois gero o arquivo jar.

E depois adiciono ela na pasta de bibliotecas do projeto que quero utilizar.

E para instanciar é a mesma coisa de uma classe interna assim;

ClasseExterna eClasse = new ClasseExterna();

Anime

Oi,

Posso estar errada, mas pelo que sei não existe DLL em Java…

Da uma olhadinha aqui, talvez ajude! http://www.guj.com.br/java/1733-acessar-metodos-de-uma-dll

A

Anime… eu não estou querendo criar uma DLL no java… estou querendo saber como faço um arquivo semelhante com a mesma função e a utilização.

Por isso que estou querendo saber… se eu criar um projeto só com a classe e gerar o jar e depois adicionar no meu projeto posso utilizar as funções criadas nessa classe.

Como?

furutani

Olá

Para acessar a DLL precisa usar a JNI.
Porém a DLL precisa ter métodos que o java conheça, ou seja, não é qualquer DLL que você irá conseguir acessar do java.

A

Vocês não estão entendendo o que estou querendo…

Se eu criar uma classe no java e gerar o jar posso utilizar as funções dela em outro projeto.

Mais essa classe tem que ficar com o código fechado.

Como fazer?

laurocaetano1

Só fazer como você mesmo falou. Cria um projeto, desenvolva a sua classe e crie o arquivo jar.
Depois, só você importar como uma biblioteca.

A

Certo… eu fiz isso… só que agora não estou conseguindo instanciar ela no novo projeto

rmendes08

Observe então a estrutura de pacotes da sua classe, se você a importou corretamente e se a classe e o construtor que você quer usar são públicos. Por exemplo, se você tem uma classe chamada Cliente, e colocar ela em um pacote chamado com.alexpassos.domain você deve declará-la assim:

package com.alexpassos.domain

public class Cliente{
}

Essa classe deve estar na seguinte estrutura de diretórios dentro do seu .jar

com 
    |----- alexpassos
                  |-----------domain
                                     |--------Cliente.class
A

Não entendi rmendes08

Lembrando que são projetos diferentes.

Criei um projeto com uma classe teste e gerei o arquivo jar.

Criei outro projeto e adicionei o arquivo teste.jar na pasta de bibliotecas.

Agora nesse novo projeto como faço para instanciar o arquivo teste.jar e utilizar as funções do mesmo.

Estou usando o Netbeans.

Desculpe a ignorância mais sou iniciante em java e nunca fiz dessa fora… não sei nem se é possível

discorpio

Boa tarde a todos.

Alexpassos. Se voce estiver utilizando o NetBeans, ele próprio se encarrega de criar o sua biblioteca “.jar”, basta voce criar um projeto novo, criar os pacotes e dentro deles a suas classes, e rodar o NetBeans ou então clicar na barra de menu superior onde há um ícone com um martelo que significa Build main project ou num ícone com um martelo e uma vassourinha amarela que significa Clean and build main project.

Logo depois, dentro do dirétorio do seu projeto, lá dentro da pasta “dist”, voce vai encontrar uma arquivo com o nome do seu projeto.jar, e só pegar esse arquivo e anexar na pasta de bibliotecas de outros projetos e pronto, [color=red]o que voce tem que fazer é a referência a qualquer classe que voce compilou dentro do seu projeto.jar, e não fazer referêcia ao projeto.jar[/color], o próprio NetBeans se encarregará de te dar a opção com luz amarela de importar a classe da biblioteca. Isso tudo se voce estiver utilizando o NetBeans, é claro. Não sei se no Eclipse é a mesma coisa.

Se voce estiver construindo o projeto na unha, então voce tem que colacar as pastas (packages) de suas classes dentro de uma pasta com o nome do seu projeto, e invocar o Javac (compilador do Java), no prompt do DOS, assim:

javac -cp nomedoprojeto

Pronto suas classes estão compiladas em epacotadas dentro do nomedoprojeto.jar

E como a Anime disse, java não gera DLLs, pois DLLs são métodos (procedures e funções) que são na maioria delas, desprovidas de classes, esses métodos são carregados em memória permanentemente enquando durar a execução da aplicação e ainda assim, DLLs foram construídas para interagir as aplicações feitas em diversas linguagens com windows. A linguagem Java, já possui o JVM que interage não são com windows, mas com qualquer plataforma, criando uma camada de abstração por baixa deles (Sistemas Operacionais)

A

Olá discorpio

Funcionou… eu estava tentando fazer referência ao nome do arquivo teste.jar e quando você disse pra fazer referência ao nome da classe que criei dentro do arquivo teste.jar ai funcionou 100%

Valeu

discorpio

alexpassos:
Olá discorpio

Funcionou… eu estava tentando fazer referência ao nome do arquivo teste.jar e quando você disse pra fazer referência ao nome da classe que criei dentro do arquivo teste.jar ai funcionou 100%

Valeu

Boa noite a todos.

Fico feliz em ter te ajudado.

Não se esqueça de digitar lá no lado do título do seu post, o [Resolvido]

Um abraço

Criado 2 de julho de 2011
Ultima resposta 2 de jul. de 2011
Respostas 13
Participantes 6