PDA

View Full Version : Ubuntu - avviare applicazione JAVA


Digital Snake®
14-08-2010, 12:43
Buongiorno a tutti.

da un po' di tempo, utilizzo un programma in java free per la gestione di riparazione (cosa che faccio per hobby).

Fino ad ora l'ho sempre usato su windows, ma recentemente su un portatile che ho sistemato, ho installato ubuntu e ora mi piacerebbe poter usare questo programma anche su linux.

Premetto che su ubuntu ho già installato JAVA, perfettamente funzionante, ora devo solo capire come creare un file batch per linux ed avviare quindi il programma.

Sotto windows ho un file .bat con all'interno le seguenti istruzioni:

@echo off
start javaw -cp lib\gestRip.jar;lib\f2edit.jar;lib\liquidlnf.jar;lib\f2util.jar;lib\derby.jar;lib\jaybird-full-2.1.6.jar;lib\jcalendar-1.3.2.jar;lib\log4j-1.2.15.jar;lib\commons-beanutils-1.7.jar;lib\commons-collections-2.1.jar;lib\commons-digester-1.7.jar;lib\commons-javaflow-20060411.jar;lib\commons-logging-1.0.2.jar;lib\itext-1.3.1.jar;lib\jasperreports-3.0.0.jar;lib\poi-3.0.1-FINAL-20070705.jar it.f2.gestRip.StartApp

Ho anche un dile di tipo sh con il seguente codice:

#! /bin/sh
[ ${JAVA_HOME} ] && JAVA=${JAVA_HOME}/bin/java || JAVA=java

# Are we running within Cygwin on some version of Windows?
cygwin=false;
case "`uname -s`" in
CYGWIN*) cygwin=true ;;
esac

# ReparsLab home.
RL_HOME='/home/fabrizio/Scrivania/RepairsLab-1.0.1a2'

# ReparsLab home in Unix format.
if $cygwin ; then
UNIX_STYLE_HOME=`cygpath "$RL_HOME"`
else
UNIX_STYLE_HOME=$RL_HOME
fi

# First entry in classpath is the ReparsLab application.
TMP_CP=$UNIX_STYLE_HOME/gestRip.jar

# Then add all library jars to the classpath.
IFS=""
for a in $UNIX_STYLE_HOME/lib/*; do
TMP_CP="$TMP_CP":"$a";
done

# Now add the system classpath to the classpath. If running
# Cygwin we also need to change the classpath to Windows format.
if $cygwin ; then
TMP_CP=`cygpath -w -p $TMP_CP`
TMP_CP=$TMP_CP';'$CLASSPATH
else
TMP_CP=$TMP_CP:$CLASSPATH
fi

$JAVA -Xmx256m -cp $TMP_CP it.f2.gestRip.StartApp



Non sapendo nulla di comandi di riga ed essendo un novizio di linux..chiedo aiuto a qualcuno più esperto :)

Gimli[2BV!2B]
14-08-2010, 13:01
l'sh è per sistemi GNU/Linux o Cygwin (http://www.cygwin.com/).

Per eseguirlo potrebbe essere sufficiente un click (se il file ha l'attributo eseguibile, lo trovi nelle proprietà del file, da menù destro del mouse).

Per essere certi di lanciarlo e controllare che tutto vada per il verso giusto (almeno le prime volte) basta:

aprire un terminale
andare nella cartella giusta: cd /PERCORSO/CARTELLA/CONTENENTE/FILE.sh
lanciare l'esecuzione: sh NOMEFILE.sh

Per dare attributo eseguibile da terminale: chmod +x NOMEFILE.sh

P.S. Dallo script si evince che si aspetta di trovare i dati del programma in /home/fabrizio/Scrivania/RepairsLab-1.0.1a2, quindi se dovessi spostare la cartella dovrai, come minimo, cambiare lo script oppure reinstallare nel posto corretto per avere la certezza che sia tutto in ordine.
Valutando la tua situazione direi che il posto migliore in cui installarlo sarebbe /home/fabrizio(/RepairsLab-1.0.1a2), via dal desktop ed in un luogo in cui il tuo utente ha pieni diritti.

Digital Snake®
14-08-2010, 13:12
Ciao grazie per la pronta risposta ^_^

Dunque..il programma si trova su una chiavetta USB e ho esigenza che rimanga su quella... Ho intuito quindi che dovrei modificare questo percorso: /home/fabrizio/Scrivania/RepairsLab-1.0.1a2 in un percorso relativo..e non assoluto. Ho provato quindi a mettere solamente /RepairsLab-1.0.1a2 .. ma non parte.

Da terminale invece non mi trova la directory.. a meno che sbaglio qualcosa io... :muro:

Gimli[2BV!2B]
14-08-2010, 13:45
Chiavetta USB? Ok.

Sul percorso relativo ci sei andato vicino: prima cosa non devi mettere lo slash davanti, seconda cosa devi scriverlo in base a dove si trova lo script che lanci.
Se l'sh si trova già dentro RepairsLab-1.0.1a2 devi mettere solo ./ che significa directory corrente. Se invece si trova in una sotto-cartella, tipo bin, devi specificare di salire un livello, cioè ../

Se si tratta di una chiavetta USB il percorso in cui andare per lanciare il comando sh dovrebbe essere /media/NOME_CHIAVETTA/ecc...

Suggerimento estremamente utile: premi il tasto TAB (quello a fianco di q) mentre digiti il percorso per avere suggerimenti sulle cartelle disponibili. Premendolo una sola volta completa automaticamente (se la scelta è unica), premendolo due volte ti suggerisce le cartelle disponibili che iniziano con la stringa che hai già digitato. Questo evita di fare errori di digitazione, vista anche la tua probabile scarsa familiarità al problema spazi lettere maiuscole/minuscole.

Digital Snake®
14-08-2010, 14:03
Ti ringrazio tantissimo per le preziose info! ho messo il percorso relativo come mi hai suggerito ) ./ - directory corrente) ed è partito!

:ave: :cincin:

Gimli[2BV!2B]
14-08-2010, 14:27
Bene, ciao! :)