Beispiel Start-Skripte (Linux/Win)

Moderator: TK 1

RomanMertyn
Mausschubser
Mausschubser
Beiträge: 71
Registriert: 7. Jun 2006 18:47
Wohnort: Darmstadt
Kontaktdaten:

Beispiel Start-Skripte (Linux/Win)

Beitrag von RomanMertyn » 16. Nov 2009 18:38

Hier ist ein Beispiel wie ein Start-Script für eure Programme unter Linux aussehen könnte:

Code: Alles auswählen

#!/bin/bash
#	Author 	R.Mertyn
#	Date	12.11.2009

# Define varibles:
# SRC --> Full Path to directory with *.java files
SRC="./src"
# BIN --> Please don't change this one
BIN="./bin"
# ROOT_PACKAGE --> Root packeage of your program
ROOT_PACKAGE="package"
# MAIN_CLASS --> A class that contain main() procedure 
MAIN_CLASS="Main"
# CLASSPATH --> You should use it you have used a extern library
CLASSPATH=""
# OPTIONS --> You should define JVM options here. You could use some already defined 
#             variables, like example below
OPTIONS="-Djava.rmi.server.codebase="$BIN

if [ ! -e $BIN ] 
then
 mkdir $BIN
 javac -d $BIN $SRC"/"$ROOT_PACKAGE"/*.java"
fi
 cd $BIN

# Create command parameter
if [ $ROOT_PACKAGE!="" ]
then
   COMM=$ROOT_PACKAGE"."$MAIN_CLASS
else
   COMM=$MAIN_CLASS
fi
 java -cp $CLASSPATH $ROOT_PACKAGE.$MAIN
#echo java -cp $CLASSPATH $OPTIONS $COMM #DEBUG
Schaft es jemand diesen Skript für Windows bzw. DOS umschreiben ???
There are two ways of constructing a software design: One way is to make it so simple there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.
C.A.R. Hoare

Benutzeravatar
Tigger
Kernelcompilierer
Kernelcompilierer
Beiträge: 404
Registriert: 26. Okt 2007 17:35
Wohnort: Hofheim
Kontaktdaten:

Re: Beispiel Start-Skript unter Linux

Beitrag von Tigger » 17. Nov 2009 14:30

Habs mal umgeschrieben. Ich hoffe es funktioniert so alles.
Wer noch Fehler findet, bitte melden.

Code: Alles auswählen

@ECHO off
REM Batch File
REM   Author  Gregor Wicklein
REM   Date   17.11.2009

REM Define varibles:
REM SRC --> Full Path to directory with *.java files
SET SRC=./src
REM BIN --> Please don't change this one
SET BIN=./bin
REM ROOT_PACKAGE --> Root packeage of your program
SET ROOT_PACKAGE=NONE
REM MAIN_CLASS --> A class that contain main() procedure
SET MAIN_CLASS=
REM CLASSPATH --> You should use it 
REM you have used a extern library
set CLASSPATH=

REM OPTIONS --> You should define JVM options here. You could use some already defined
REM             variables, like example below
SET OPTIONS=-Djava.rmi.server.codebase=%BIN%

IF NOT EXIST .\bin GOTO makecode
GOTO startprog
:makecode
mkdir bin
IF %ROOT_PACKAGE% == NONE GOTO else1
:then1
@ECHO on
javac -d %BIN%/ %SRC%/%ROOT_PACKAGE%/*.java
@ECHO off
GOTO startprog
:else1
@ECHO on
javac -d %BIN%/ %SRC%/*.java
@ECHO off
GOTO startprog



:startprog
IF %ROOT_PACKAGE% == NONE GOTO else
:then
set COMM=%ROOT_PACKAGE%.%MAIN_CLASS%
GOTO finish
:else
set COMM=%MAIN_CLASS%
GOTO finish


:finish

echo java -cp %CLASSPATH% %OPTIONS% %COMM% 
java -cp %CLASSPATH% %OPTIONS% %COMM%
REM java -cp %ROOT_PACKAGE%.%MAIN_CLASS%
REM java -cp %CLASSPATH% %OPTIONS% %COMM% 

Falls die Console meckert, weil sie "javac" nicht kennt, müsst ihr die PATH-Variable aktualisieren. Wie das geht steht hier: http://java.sun.com/j2se/1.3/install-wi ... nvironment.
Zuletzt geändert von Tigger am 18. Nov 2009 17:00, insgesamt 1-mal geändert.

Benutzeravatar
MisterD123
Geek
Geek
Beiträge: 811
Registriert: 31. Okt 2006 20:04
Wohnort: Weiterstadt

Re: Beispiel Start-Skripte (Linux/Win)

Beitrag von MisterD123 » 17. Nov 2009 16:54

blöde frage - bei mir funktioniert der RMI spaß ohne jegliche parameter, sofern ich nicht aus meinem NAT-Netzwerk raushosten will, dann muss ich den hostnamen angeben. codebase hab ich bisher nicht gebraucht.

Ich war jetzt am Montag leider nicht in der Übungsstunde, ich vermute mal, da wurde etwas bezüglich dieser start scripts gesagt - was hats damit auf sich? gehören die verpflichtend zum umfang der abgabe oder sollen die einfach nur eine hilfe darstellen wenn man probleme beim starten hat oder für was sind sie gut?

RomanMertyn
Mausschubser
Mausschubser
Beiträge: 71
Registriert: 7. Jun 2006 18:47
Wohnort: Darmstadt
Kontaktdaten:

Re: Beispiel Start-Skripte (Linux/Win)

Beitrag von RomanMertyn » 17. Nov 2009 17:36

Die Skripte müssen nicht mitgeschickt werden, sind aber erwünscht (fehlen von Skripten führt NICHT zum Punkteabzug).

Ich muss mir deine Lösung anschauen, um festzustellen, ob das ganze auch wie gewünscht funktioniert.
In den meisten Fällen lässt sich der Server noch nicht mal binden, wenn codebase-Parameter nicht stimmt.
There are two ways of constructing a software design: One way is to make it so simple there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.
C.A.R. Hoare

RomanMertyn
Mausschubser
Mausschubser
Beiträge: 71
Registriert: 7. Jun 2006 18:47
Wohnort: Darmstadt
Kontaktdaten:

Re: Beispiel Start-Skripte (Linux/Win)

Beitrag von RomanMertyn » 18. Nov 2009 02:49

2Tigger - Dein Script funktioniert bei mir nicht, :-( schade sieht gut aus.
There are two ways of constructing a software design: One way is to make it so simple there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.
C.A.R. Hoare

Benutzeravatar
Tigger
Kernelcompilierer
Kernelcompilierer
Beiträge: 404
Registriert: 26. Okt 2007 17:35
Wohnort: Hofheim
Kontaktdaten:

Re: Beispiel Start-Skripte (Linux/Win)

Beitrag von Tigger » 18. Nov 2009 11:05

RomanMertyn hat geschrieben:2Tigger - Dein Script funktioniert bei mir nicht, :-( schade sieht gut aus.
Was genau klappt denn bei dir nicht? Compiliert und/oder startet er nicht? Spuckt er nen Fehler raus? Funktioniert "javac" auf der windows-konsole? Bei mir hats eigentlich funktioniert. Ansonsten hab ich dir ne pm geschickt.

Benutzeravatar
MisterD123
Geek
Geek
Beiträge: 811
Registriert: 31. Okt 2006 20:04
Wohnort: Weiterstadt

Re: Beispiel Start-Skripte (Linux/Win)

Beitrag von MisterD123 » 18. Nov 2009 11:39

javac funktioniert wenn das bin-verzeichnis der SDK im path ist.

Benutzeravatar
dEeP-fRiEd
Kernelcompilierer
Kernelcompilierer
Beiträge: 432
Registriert: 19. Okt 2005 00:58
Wohnort: Darmstadt
Kontaktdaten:

Re: Beispiel Start-Skripte (Linux/Win)

Beitrag von dEeP-fRiEd » 18. Nov 2009 12:13

MisterD123 hat geschrieben:blöde frage - bei mir funktioniert der RMI spaß ohne jegliche parameter, sofern ich nicht aus meinem NAT-Netzwerk raushosten will, dann muss ich den hostnamen angeben. codebase hab ich bisher nicht gebraucht.
Startest du zufällig die RMI Registry im Programm? Dann braucht man nämlich keine codebase, da die Registry ja vom gleichen Classloader, wie der Server Code geladen wird. Du musst die Registry separat über den Befehl "rmiregistry" in der console starten! Hatte den Fehler auch erst gemacht.
NOSCE TE IPSUM
visit: http://www.flicknetwork.net.tc

RomanMertyn
Mausschubser
Mausschubser
Beiträge: 71
Registriert: 7. Jun 2006 18:47
Wohnort: Darmstadt
Kontaktdaten:

Re: Beispiel Start-Skripte (Linux/Win)

Beitrag von RomanMertyn » 18. Nov 2009 15:24

dEeP-fRiEd hat geschrieben:
MisterD123 hat geschrieben:blöde frage - bei mir funktioniert der RMI spaß ohne jegliche parameter, sofern ich nicht aus meinem NAT-Netzwerk raushosten will, dann muss ich den hostnamen angeben. codebase hab ich bisher nicht gebraucht.
Startest du zufällig die RMI Registry im Programm? Dann braucht man nämlich keine codebase, da die Registry ja vom gleichen Classloader, wie der Server Code geladen wird. Du musst die Registry separat über den Befehl "rmiregistry" in der console starten! Hatte den Fehler auch erst gemacht.
Guter Punkt. Ich habe keinen Grund für dieses Verhalten gefunden.
There are two ways of constructing a software design: One way is to make it so simple there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.
C.A.R. Hoare

RomanMertyn
Mausschubser
Mausschubser
Beiträge: 71
Registriert: 7. Jun 2006 18:47
Wohnort: Darmstadt
Kontaktdaten:

Re: Beispiel Start-Skripte (Linux/Win)

Beitrag von RomanMertyn » 18. Nov 2009 15:27

Tigger hat geschrieben:
RomanMertyn hat geschrieben:2Tigger - Dein Script funktioniert bei mir nicht, :-( schade sieht gut aus.
Was genau klappt denn bei dir nicht? Compiliert und/oder startet er nicht? Spuckt er nen Fehler raus? Funktioniert "javac" auf der windows-konsole? Bei mir hats eigentlich funktioniert. Ansonsten hab ich dir ne pm geschickt.
Die Ausgabe erzeugt bei mir "NONE" als Package Name. Wenn der Package Name nicht definiert ist, sollte es auch nicht in dem Aufruf von JVM auftauchen.
There are two ways of constructing a software design: One way is to make it so simple there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.
C.A.R. Hoare

Benutzeravatar
Tigger
Kernelcompilierer
Kernelcompilierer
Beiträge: 404
Registriert: 26. Okt 2007 17:35
Wohnort: Hofheim
Kontaktdaten:

Re: Beispiel Start-Skripte (Linux/Win)

Beitrag von Tigger » 18. Nov 2009 17:02

RomanMertyn hat geschrieben:Die Ausgabe erzeugt bei mir "NONE" als Package Name. Wenn der Package Name nicht definiert ist, sollte es auch nicht in dem Aufruf von JVM auftauchen.
Ich hab den Code eben nochmal korrigiert, hoffe jetzt klappts. Wenn das Projekt in keinem Package ist, soll unter ROOT_PACKAGE einfach NONE stehen.

Benutzeravatar
MisterD123
Geek
Geek
Beiträge: 811
Registriert: 31. Okt 2006 20:04
Wohnort: Weiterstadt

Re: Beispiel Start-Skripte (Linux/Win)

Beitrag von MisterD123 » 18. Nov 2009 19:19

dEeP-fRiEd hat geschrieben:
MisterD123 hat geschrieben:blöde frage - bei mir funktioniert der RMI spaß ohne jegliche parameter, sofern ich nicht aus meinem NAT-Netzwerk raushosten will, dann muss ich den hostnamen angeben. codebase hab ich bisher nicht gebraucht.
Startest du zufällig die RMI Registry im Programm? Dann braucht man nämlich keine codebase, da die Registry ja vom gleichen Classloader, wie der Server Code geladen wird. Du musst die Registry separat über den Befehl "rmiregistry" in der console starten! Hatte den Fehler auch erst gemacht.
ist das aus irgendeinem grund verwerflich?

Wambolo
Computerversteher
Computerversteher
Beiträge: 381
Registriert: 18. Okt 2007 11:36

Re: Beispiel Start-Skripte (Linux/Win)

Beitrag von Wambolo » 18. Nov 2009 19:29

ich habe auch nicht kapiert warum das nicht erlaubt, bzw.sogar ein Fehler sein soll, wäre nett wenn die Veranstalter sich dazu kurz äußern könnten

RomanMertyn
Mausschubser
Mausschubser
Beiträge: 71
Registriert: 7. Jun 2006 18:47
Wohnort: Darmstadt
Kontaktdaten:

Re: Beispiel Start-Skripte (Linux/Win)

Beitrag von RomanMertyn » 18. Nov 2009 20:57

Wambolo hat geschrieben:ich habe auch nicht kapiert warum das nicht erlaubt, bzw.sogar ein Fehler sein soll, wäre nett wenn die Veranstalter sich dazu kurz äußern könnten
Ich habe nie behauptet, dass es ein Fehler ist. Solange Server und Client in meiner Umgebung funktionieren, RMI- und MVC-Konzepte mehr oder weniger richtig implementiert sind, kriegt ihr volle Punktzahl.
Falls ihr mögt kann ich die Details zu der Umgebung preisgeben. Da es sich bis jetzt niemanden interessiert hat, in welcher Umgebung die Tests statt finden, habe ich bis dato darauf verzichtet.

Jetzt aber keine Panik kriegen, es ist nichts gemeines. Das ganze ist nur eine Verbindung von 2 Rechner übers Internet.
There are two ways of constructing a software design: One way is to make it so simple there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.
C.A.R. Hoare

baerchen
Computerversteher
Computerversteher
Beiträge: 382
Registriert: 24. Okt 2006 15:42

Re: Beispiel Start-Skripte (Linux/Win)

Beitrag von baerchen » 19. Nov 2009 01:33

zwei rechner übers internet, und codebase über file-urls...

wenn das so bleibt, bin ich mal gespannt ob eine einzige implementierung richtig läuft....
We can do this the hard way or my way ...which is basically the same thing!

Antworten

Zurück zu „TK1: Rechnernetze, Verteilte Systeme und Algorithmen“