Foros del Web » Programación para mayores de 30 ;) » Java »

Crear dll en java

Estas en el tema de Crear dll en java en el foro de Java en Foros del Web. Buenos dias Queria saber si existe posibilidad de crear una dll de comunicacion con un dispositivo... Lo que he visto en internet es que se ...
  #1 (permalink)  
Antiguo 27/03/2015, 07:17
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Crear dll en java

Buenos dias

Queria saber si existe posibilidad de crear una dll de comunicacion con un dispositivo... Lo que he visto en internet es que se pueden hacer con C++ y Visual Basic; y lo que he visto de Java, hace falta usar JNI y C++, pero queria saber si es posible hacerlo usando unicamente Java

Muchas gracias

Nota: Me han dado alternativa la creacion de un jar

Aclaratoria: La dll o el jar, se utilizarian en una aplicacion web con jsp; dicha aplicacion tendria el archivo cargado previamente, y leeria los metodos de cualquiera de las alternativas, para establecer la comunicacion con el dispositivo... Espero haberme explicado de manera correcta

Última edición por dragonfire256; 27/03/2015 a las 07:35
  #2 (permalink)  
Antiguo 27/03/2015, 08:00
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Crear dll en java

Para mí no tiene sentido lo que estás pidiendo, una Dll es una librería de windows y tú lo que quieres es comunicarte con un dispositivo.

Muchos dispositivos presentan una API (que seguramente use sus Dll) para que puedas comunicarte directamente desde java, ¿para qué necesitarías entonces crear una Dll?

Aparte de eso hay librerías en java que te permiten acceder a dispositivos aunque no tengan una API de java.

http://usb4java.org/
https://github.com/rxtx/rxtx
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 27/03/2015, 08:17
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Respuesta: Crear dll en java

Cita:
Iniciado por Xerelo Ver Mensaje
Para mí no tiene sentido lo que estás pidiendo, una Dll es una librería de windows y tú lo que quieres es comunicarte con un dispositivo.

Muchos dispositivos presentan una API (que seguramente use sus Dll) para que puedas comunicarte directamente desde java, ¿para qué necesitarías entonces crear una Dll?

Aparte de eso hay librerías en java que te permiten acceder a dispositivos aunque no tengan una API de java.

http://usb4java.org/
https://github.com/rxtx/rxtx
Lo que pasa es que esos dispositivos vienen de una compañia que estamos absorbiendo; segun ellos, no existe dll para esos equipos... Ellos se estaban comunicando con los dispositivos con una clase php, que envia los comandos via socket... Como la aplicacion de mi empresa, corre en java/jsp, no puedo utilizar dicha clase; adicionalmente, tenemos otro dispositivo del mismo tipo que funciona a traves de dll (dicha dll fue diseñada por un proveedor), por eso pense en la posibilidad de desarrollar una libreria dinamica

No se si mas o menos aclare la situacion en la que me encuentro

Muchas gracias por tu tiempo
  #4 (permalink)  
Antiguo 27/03/2015, 08:33
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Crear dll en java

¿Y por qué no conectas tú también desde java vía socket?

Si ya tienes el código en PHP sería adaptarlo a java, y eso sería tu jar de conexión o API.

http://es.wikipedia.org/wiki/Interfa...e_aplicaciones

Cita:
La interfaz de programación de aplicaciones (IPA), abreviada como API1 (del inglés: Application Programming Interface), es el conjunto de subrutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción. Son usadas generalmente en las bibliotecas.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 27/03/2015, 08:41
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Respuesta: Crear dll en java

Cita:
Iniciado por Xerelo Ver Mensaje
¿Y por qué no conectas tú también desde java vía socket?

Si ya tienes el código en PHP sería adaptarlo a java, y eso sería tu jar de conexión o API.

http://es.wikipedia.org/wiki/Interfa...e_aplicaciones
Y se podria utilizar de la misma forma que la dll que tengo actualmente? (Vale aclarar que desconozco como esta programada la dll, si fue realizada en C++, Visual Basic u otro lenguaje)... Es decir, a traves de las etiquetas object, la cargo a traves de la aplicacion, y cuando requiero usarla llamo a los metodos que tiene internamente.... Seria lo mismo para el archivo jar, o tendria que tomar algunas consideraciones?... Existe algun riesgo de seguridad para la aplicacion usar un archivo jar, en vez de una dll?

Muchas gracias por tu tiempo
  #6 (permalink)  
Antiguo 27/03/2015, 09:39
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Crear dll en java

Cita:
Es decir, a traves de las etiquetas object, la cargo a traves de la aplicacion,
DLL cargada mediante etiquetas object???? Eso es .NET!

Estas seguro de que la aplicacion actual que carga los metodos es una aplicacion PHP? No sera ASP.NET?

En Java puedes utilizar los metodos del jar en tu aplicacion web Java si lo incluyen en el classpath (basta con depositar el jar en el directorio lib de tu app web, por ejemplo).

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #7 (permalink)  
Antiguo 27/03/2015, 10:04
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Respuesta: Crear dll en java

Cita:
Iniciado por Profesor_Falken Ver Mensaje
DLL cargada mediante etiquetas object???? Eso es .NET!

Estas seguro de que la aplicacion actual que carga los metodos es una aplicacion PHP? No sera ASP.NET?

En Java puedes utilizar los metodos del jar en tu aplicacion web Java si lo incluyen en el classpath (basta con depositar el jar en el directorio lib de tu app web, por ejemplo).

Un saludo
Vamos a aclarar: la aplicacion en la que estoy trabajando, esta desarrollada en java/jsp, y las etiquetas object son de html... La comunicacion que realizaba la otra compañia, fue programada en PHP y se comunicaba a traves de sockets... A que te refieres con la parte de classpath? Habria que realizar una configuracion adicional en todas las maquinas que van a hacer uso de ese archivo jar?

http://www.w3schools.com/tags/tag_object.asp

Este es el enlace de la etiqueta object de html

Muchas gracias
  #8 (permalink)  
Antiguo 27/03/2015, 10:27
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Crear dll en java

Buenas,

Efectivamente la etiqueta object existe desde que existe HTML4. Historicamente se ha usado para embeber objetos como applets, flash etc.
Ahora bien, la posibilidad de embeber una dll en una etiqueta objet para consumir los metodos de dicha libreria dinamica solo funciona en Internet Explorer y es explotable desde tecnologias microsoft (vbscript o .net). Desde java no podras hacerlo.
http://stackoverflow.com/questions/9...me-and-firefox
https://msdn.microsoft.com/en-us/lib...(v=vs.90).aspx


Cita:
Habria que realizar una configuracion adicional en todas las maquinas que van a hacer uso de ese archivo jar?
La aplicacion PHP que tenia el la otra compania era una aplicacion WEB o standalone (ejecutable instalado en cada equipo de forma independiente)???. Entiendo que si es PHP seria un servidor web. Dicho servidor web se comunicaria con el disposivo y servira de interface a los clientes que se conecten a traves de el.
En java seria lo mismo, solo debes tener un servidor al que se conecten los clientes y que servira de interfaz de comunicacion con el dispositivo.


Por ultimo, te contradices en lo que comentas y por eso supongo no acabo de entenderte.

Por un lado dices que actualmente no existe un DLL para comunicarte con el dispositivo:
Cita:
segun ellos, no existe dll para esos equipos...
Pero luego dices que si que hay una:
Cita:
se podria utilizar de la misma forma que la dll que tengo actualmente? (Vale aclarar que desconozco como esta programada la dll, si fue realizada en C++, Visual Basic u otro lenguaje)...
Por tanto hay algo que falta por explicar. De donde has sacado la dll si la compania que actualmente explota el dispositivo dice que no hay ninguna?

Un saludo
__________________
If to err is human, then programmers are the most human of us

Última edición por Profesor_Falken; 27/03/2015 a las 10:33
  #9 (permalink)  
Antiguo 27/03/2015, 12:01
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Crear dll en java

Hola:

Con java NO puedes crear una dll. Sólo puedes usarla si ya está creada y para ello necesitas JNI.

Con java podrías crear un jar para manejar el dispositivo, pero como comenta Xerelo, no siempre es posible manejar un dispositivo con java. Y como comenta Xerelo, para manejar un dispositivo en java es habitual tener que usar una dll ya creada en otro lenguaje.

Si el dispositivo admite conexión con socket, posiblemente sea la solución más sencilla. Con java puedes fácilmente abrir un socket y comunicarte con el dispositivo. Dependiendo de cómo sean los mensajes con el dispositivo puede ser más o menos complejo. Puedes entonces hacer un jar que sea el que abra el socket y se comunique con el dispositivo y usar ese jar desde tu aplicación. Eso lo harías sólo con java.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #10 (permalink)  
Antiguo 27/03/2015, 12:26
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Respuesta: Crear dll en java

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Efectivamente la etiqueta object existe desde que existe HTML4. Historicamente se ha usado para embeber objetos como applets, flash etc.
Ahora bien, la posibilidad de embeber una dll en una etiqueta objet para consumir los metodos de dicha libreria dinamica solo funciona en Internet Explorer y es explotable desde tecnologias microsoft (vbscript o .net). Desde java no podras hacerlo.
http://stackoverflow.com/questions/9...me-and-firefox
https://msdn.microsoft.com/en-us/lib...(v=vs.90).aspx



La aplicacion PHP que tenia el la otra compania era una aplicacion WEB o standalone (ejecutable instalado en cada equipo de forma independiente)???. Entiendo que si es PHP seria un servidor web. Dicho servidor web se comunicaria con el disposivo y servira de interface a los clientes que se conecten a traves de el.
En java seria lo mismo, solo debes tener un servidor al que se conecten los clientes y que servira de interfaz de comunicacion con el dispositivo.


Por ultimo, te contradices en lo que comentas y por eso supongo no acabo de entenderte.

Por un lado dices que actualmente no existe un DLL para comunicarte con el dispositivo:


Pero luego dices que si que hay una:


Por tanto hay algo que falta por explicar. De donde has sacado la dll si la compania que actualmente explota el dispositivo dice que no hay ninguna?

Un saludo
Disculpa por enredarte Falken, pero de por si las cosas no estan tan claras aca

El dispositivo A que tenemos actualmente, funciona con una dll que un proveedor desarrollo; dicha libreria es cargada mediante las etiquetas object en la aplicacion java/jsp de la empresa donde trabajo... El dispositivo B, es de una compañia que esta absorbiendo mi empresa; al preguntarle al personal de la compañia que esta siendo absorbida, indican que no se manejan a traves de dll, sino de una clase en php, que se conecta a traves de socket al dispositivo B (obviamente, dicho dispositivo B debe encontrarse conectado a la red)... Espero haber aclarado tus dudas
  #11 (permalink)  
Antiguo 27/03/2015, 12:31
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Respuesta: Crear dll en java

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

Con java NO puedes crear una dll. Sólo puedes usarla si ya está creada y para ello necesitas JNI.

Con java podrías crear un jar para manejar el dispositivo, pero como comenta Xerelo, no siempre es posible manejar un dispositivo con java. Y como comenta Xerelo, para manejar un dispositivo en java es habitual tener que usar una dll ya creada en otro lenguaje.

Si el dispositivo admite conexión con socket, posiblemente sea la solución más sencilla. Con java puedes fácilmente abrir un socket y comunicarte con el dispositivo. Dependiendo de cómo sean los mensajes con el dispositivo puede ser más o menos complejo. Puedes entonces hacer un jar que sea el que abra el socket y se comunique con el dispositivo y usar ese jar desde tu aplicación. Eso lo harías sólo con java.

Se bueno.
Solo por aclarar: con que lenguajes se realizan las dll?... He visto en internet que se usa C++ y Visual Basic; conoces algun otro lenguaje?

Al parecer, la alternativa sera realizarlo via socket y construir un jar, pero en la clase php de la otra compañia, existen metodos que no son "trasladables" a java, y hace un poco mas dificil todo, pero creo que sera tema para otro dia
  #12 (permalink)  
Antiguo 27/03/2015, 14:28
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Crear dll en java

Hola:

La dll puedes hacerla con cualquier lenguaje compilado y nativo para windows. No puedes hacerlas con java (que no es nativo) ni lenguajes interpretados (como python, ruby, ...)

No entiendo "existen metodos que no son "trasladables" a java, y hace un poco mas dificil todo". Si en php lo tienes hecho y los métodos son "trasladables" (entiendo que eso quiere decir que los puedes pasar a java fácilmente), debería facilitarte el asunto más que complicarlo, en el sentido de que puedes "guiarte" por el código php para hacer tu código java en vez de tener que pensarlo desde cero.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #13 (permalink)  
Antiguo 27/03/2015, 15:12
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Respuesta: Crear dll en java

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

La dll puedes hacerla con cualquier lenguaje compilado y nativo para windows. No puedes hacerlas con java (que no es nativo) ni lenguajes interpretados (como python, ruby, ...)

No entiendo "existen metodos que no son "trasladables" a java, y hace un poco mas dificil todo". Si en php lo tienes hecho y los métodos son "trasladables" (entiendo que eso quiere decir que los puedes pasar a java fácilmente), debería facilitarte el asunto más que complicarlo, en el sentido de que puedes "guiarte" por el código php para hacer tu código java en vez de tener que pensarlo desde cero.

Se bueno.
Es que me estoy guiando por el codigo php para realizar la clase en java, pero metodos como socket_clear_error (), socket_last_error y socket_strerror, entre otros, no existen un "equivalente", de acuerdo a la documentacion oficial de Java

http://docs.oracle.com/javase/7/docs...et/Socket.html
  #14 (permalink)  
Antiguo 27/03/2015, 15:38
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: Crear dll en java

Cita:
Iniciado por dragonfire256 Ver Mensaje
Es que me estoy guiando por el codigo php para realizar la clase en java, pero metodos como socket_clear_error (), socket_last_error y socket_strerror, entre otros, no existen un "equivalente", de acuerdo a la documentacion oficial de Java

[URL="http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html"]http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html[/URL]
Mira, para empezar tomar como referencia algo implementado en PHP me parece una terrible idea.

PHP es un lenguaje bastante precario y terriblemente mal diseñado que no tiene un manejo de errores adecuado. Es por esto que las librerias de PHP tienen estas cuestiones horribles tipo "get_last_error" o cosas por el estilo.

En plataformas serias y profesionales como .Net o java, los errores en tiempo de ejecución se manejan con el concepto de Exception y con bloques try/catch. Es por esto que en java no encontrás los "equivalentes" de esos metodos de PHP, porque simplemente no existen porque son basicamente una implementación desprolija y poco inteligente consecuencia de la falta de criterio de la plataforma sobre la que esta escrito.

Mi sugerencia es que agarres (si existe) la documentación del dispositivo con el que te querés comunicar, y construyas tu propia API desde cero basandote en esa documentacion, mas que en el codigo existente de terceros.

Tratar de construir algo robusto sobre una base mal hecha por terceros en una plataforma precaria es muy poco realista, a mi parecer.

Etiquetas: dll
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:38.