2010-08-31 37 views
46

Creé un programa en Java y lo diseñé para que los métodos que quiero que aparezcan (métodos getter) en general, los puedo llamar fácilmente después de iniciar la clase que contiene estos métodos.¿Cómo crear mi propia biblioteca de Java (API)?

La pregunta es que necesito hacer que esta aplicación (que contiene los métodos getter) sea como una API para que pueda darles a mis desarrolladores el uso de mis funciones (los métodos getter) si los necesitan, y solo lo que necesitan es agregar este archivo (creo que la API después está hecha como archivo .jar).

¿Cómo puedo hacer para que pueda hacer que mi código sea reutilizable con otra aplicación? Es similar al .dll, creo.

Muchas gracias;)

+1

¿Desea ocultar la implementación? – stacker

Respuesta

42

Crear un JAR. Luego incluye el JAR. Cualquier clase en ese JAR estará disponible. Solo asegúrate de proteger tu código si estás dando una API. No exponga ningún método/propiedad al usuario final que no deba ser utilizado.

Editar: En respuesta a su comentario, asegúrese de no incluir la fuente cuando empaquete el JAR. Solo incluye los archivos de clase. Eso es lo mejor que puedes hacer realmente.

+1

¿Cómo proteger mi código de ser un robo? Lo que sé es que puedes obtener fácilmente el código fuente del archivo jar ... Entonces, ¿hay alguna manera de dificultar el robo o no? – Q8Y

+3

No puedes realmente. No incluya la fuente, solo el código compilado (como han dicho otros), pero eso no detiene a determinadas personas que usan descompiladores, etc. – Ben

+1

Puede usar un ocultador de código para proteger su código contra el robo. http://en.wikipedia.org/wiki/Obfuscation_(software) –

10

Necesita empaquetar su aplicación como un archivo jar. Puede usar la tarea ant jar para crear archivos jar o puede usar el comando jar.

Para las tareas de hormigas mira esto link.

Para crearlo manualmente, mire este link.

+0

Estos dos métodos me parecen cableados ... ¿Desde dónde puedo escribir el código para crear el archivo jar? ¿es de la línea de comando? porque ellos no especificaron eso !! ¿Hay algún problema si uso Eclipse para generar el archivo jar? ¿Da el mismo resultado? ¿Hay algún problema con la seguridad de esta manera? (Eclipse) ... Muchas gracias – Q8Y

+0

La tarea ant es parte de un build.xml. Sin embargo, también puede invocar programáticamente tareas ant. El segundo enlace (manual uno) se realiza por línea de comando. También puedes generar el archivo jar de eclipse, pero te recomendaría usar un build.xml, ya que ayudará a que tu aplicación sea más fácil de implementar para la empresa. – CoolBeans

+0

Además de los métodos descritos aquí, puede, por supuesto, exportar sus clases como un JAR de Eclipse/IDE de su elección, sí. – Ben

6

Asegúrese de escribir y publicar javadocs para todas sus clases y métodos públicos y protegidos.

+0

Yah ... Hice eso para mis métodos ... para mí y para uno usará la API ... Javadocs es agradable, pero ¿hay una mejor manera de organizar los archivos que se generan en formato html?Desde entonces, se generan muchos archivos junto con el (Índice) ... Espero que haya una manera de organizar eso y hacerlo profesional;) ​​ – Q8Y

+0

@ Q8Y - Javadoc es profesional. Sun/Oracle lo usa para la documentación de la biblioteca Java, así como para la mayoría de los proveedores de biblioteca de terceros. Podría nombrar a casi todos aquí, pero un par de ejemplos sería Spring Framework (http://static.springsource.org/spring/docs/3.0.x/javadoc-api/) o Apache Commons (IO - http://commons.apache.org/io/api-release/index.html) –

+0

Definido como "mejor". También javadoc es el estándar de facto para documentar las API de Java. –

15

para ser utilizable como una API, las clases deben:

  • utilizar un paquete único (idealmente siguiendo la convención, es decir, el inverso de un dominio que poseen como prefijo). Esto evita conflictos de nombres
  • Tienen solo aquellas clases y métodos public o protected que están destinados a ser utilizados por otros. Esto hace que sea más fácil de usar.
  • Tienen extensos comentarios Javadoc.
  • Esté disponible como un archivo JAR - JAR idealmente separados para distribución binaria, código fuente y archivos javadoc.
4

Existen varias formas de exponer su código. Crear un contenedor y distribuirlo puede ser lo más fácil ya que otros desarrolladores solo tendrán que incluir tu jar. Sin embargo, si está hablando de "alguien" que accede a su código, un servicio web puede tener más sentido ya que puede proporcionar acceso a los datos sin proporcionar todo el código necesario. Menciona que proporciona acceso a sus usuarios: si crea una clase que tiene captadores, los otros desarrolladores pueden usarlos, pero ¿cómo se van a poblar? Si su aplicación es autónoma porque obtiene los datos necesarios y proporciona los captadores, eso debería funcionar, pero si está hablando de proporcionar acceso a los datos de su aplicación en ejecución, un servicio web tiene más sentido ya que su aplicación puede recuperar los datos. y proporcionar acceso a través de métodos de acceso público.

Lo más probable es que también desee crear interfaces para que los desarrolladores puedan codificar contra la interfaz y pueda cambiar el funcionamiento interno sin afectarlos. Cualquier API que será utilizada por otros también debe estar ampliamente documentada.

5

Para crear el frasco:

jar cf <jar_name> <sources> 
1

Bueno, depende de su IDE. Utilizo Netbeans, así que solo llegué al proyecto de compilación, ¡y viola! Un archivo jar se crea en mi directorio especificado. Ahora, eso es solo para compilar. Todo lo que tiene que hacer alguien es descargar su archivo .jar, y si está en Netbeans, haga clic con el botón derecho en las bibliotecas, agregue jar/folder y seleccione el archivo descargado.

0

También puede considerar:

  • Incluir algunos ejemplos que muestran cómo utilizar la biblioteca de
  • Construye tu frasco usando Apache Maven
  • Deja tus frasco en un repositorio de Maven pública
  • Publicar una nueva versión de su biblioteca cuando encuentre/corrija errores
  • Si desea ocultar su implementación, puede empacar su jar con ofuscación, de modo que si alguien descompila sus clases, el bacalao e será difícil de leer
Cuestiones relacionadas