Jar datei einbinden ohne mitzukompilieren

rizor

Grünschnabel
Hi,

ich habe mir ein Programm geschrieben, dass aus mehreren Jar-Dateien besteht.
Das vereinfacht für mich die Wartung.

Nun möchte ich diese Jar-Dateien in das Programm einbinden.
Unter Eclipse klappt das wunderbar, aber wenn ich dann die main-Datei über das Terminal laufen lasse, sagt er mir, dass er die Packages nicht findet.

Ich könnte die Jar-Dateien so einbinden, dass er sie einfach mitkompiliert.
Das möchte ich aber nicht.
Dann ist mein ganzer Wartungsaufwand ja hin.

Wie kann ich die Dateien dann einbinden?

Danke für eure Hilfe

Gruß
rizor
 

takidoso

Erfahrenes Mitglied
Hi rizor,
also es kommt darauf an, wie du Deine Java-Anwendung startest. Ich selbst verwende dafür startskripte, die die Java-bibliotheken verwenden.
Diese Skripte verwende ich immer wieder als Template.
Hier ein Pseudobeispiel mit herzlichen vielen jar-dateien
Bash:
#!/bin/sh

export APP_HOME=/export/home/opbank/filedaemon

  echo "Starting.."
  JAVA=/usr/java5_64/bin/java
  CLASSPATH="$APP_HOME/lib"
   CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/meinelib1.jar"
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/meinelib2.jar"
  # Sonstige benötigte Jar's von Fremdherstellern
  # ------------------------------------------------------
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/activation.jar"
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/commons-email-1.0.jar"
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/commons-lang-2.2.jar"
  #CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/dom4j-1.6.1.jar"
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/jsr173_1.0_api.jar"
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/jvyaml.jar"
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/mail.jar"
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/utu_common_jar.jar"
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/utu_proprietary-schema_jar.jar"
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/xbean.jar"
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/xmldsig.jar"
  CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/xmlsec.jar"


  JAVAXOPTIONS="-Xms16M -Xmx512M"

  JAVAOPTIONS="-cp ${CLASSPATH}"

  JAVAPROPS="-DAPP_HOME=."

#  JAVAPROPS="${JAVAPROPS} -Djava.util.logging.config.file=getrepl_log.properties"

  # Set main class for this service:
  #
  MAINCLASS=de/mein/packet/MeineMainKlasse
  # Start 
  #echo ${JAVA} ${JAVAPROPS} ${JAVAXOPTIONS} ${JAVAOPTIONS} ${MAINCLASS} $1 $2 $3 $4 $5 $6 $7 $8 $9
  ${JAVA} ${JAVAPROPS} ${JAVAXOPTIONS} ${JAVAOPTIONS} ${MAINCLASS} $1 $2 $3 $4 $5 $6 $7 $8 $9

und hier das ganze für eine batch/cmd Datei unter Windows

Code:
@ECHO OFF

if "%APPL_INI_PATH%"=="" goto NEED_VAR_SET

 
SET JAVA=C:\j2sdk1.4.2_10\bin\java
SET JAVALIBS=lib
SET CLASSPATH=%JAVALIBS%\meineLib1.jar
SET CLASSPATH=%CLASSPATH%;%JAVALIBS%\meineLib2.jar
SET CLASSPATH=%CLASSPATH%;%JAVALIBS%\jxl.jar

REM
REM Other foreign source JARs:
REM ------------------------------------------------------

SET JAVAXOPTIONS=-Xms16M -Xmx256M
SET JAVAOPTIONS=-cp %CLASSPATH%
SET JAVAPROPS=-DINI_FILE_HOME=%APPL_INI_PATH%
REM Set main class for this service:
SET MAINCLASS=de.mein.packet.MeineMainKlasse
echo =============================================================
%JAVA% -version
echo ----------------------------------------------------------------------
ECHO %JAVA% %JAVAXOPTIONS% %JAVAOPTIONS% %JAVAPROPS% %MAINCLASS%
%JAVA% %JAVAXOPTIONS% %JAVAOPTIONS% %JAVAPROPS% %MAINCLASS% %1 %2 %3 %4

GOTO END

:NEED_VAR_SET
ECHO "Bitte APPL_INI_PATH setzen"

:END

in der Hoffnung ausgeholfen zu haben

Takidoso
 
Zuletzt bearbeitet: