.jar su WInXP funziona ma da Kubuntu no

di il
4 risposte

.jar su WInXP funziona ma da Kubuntu no

Ciao gente,

Situazione: Pc in dual boot tra WinXP e Kubuntu 14.04.
Applicazione Java sviluppata su WinXP con NetBeans 7.3.1.

Per eseguirla in WinXP ho creato un file NomeProg.vbs ubicato nella stessa cartella del NomeProg.jar contente le seguenti righe:

const jarfile="C:\Applicazioni\NomeProg\NomeProg.jar"
dim wshell
set wshell=WScript.CreateObject("WScript.Shell")
wshell.run "javaw -jar " & jarfile ,1,false
Poi dal menù Start richiamo il file .vbs e tutto funziona.

In Kubuntu ha sempre funzionato aggiungendo al menù di start la riga:
Java -jar /home/marco/NomeProg/NomeProg.jar
Ora ho aggiunto una sottocartella \Dat contenente dei file di configurazione che il programma va a leggere, e cercando di eseguirlo mi da errore perché cerca di accedere alla cartella:
/home/Dat/Dati.txt
invece che
/home/marco/NomeProg/Dat/Dati.txt

Questo l'ho scoperto dando il comando java -jar /home/marco/xFile/xFile.jar da terminale, poiché dal menù di start non mi dava alcun messaggio di errore.

Credo che dipenda dal fatto che nel programma uso la
System.getProperty("user.dir")
per ottenere la cartella in cui è posizonato il .jar che usato nell'IDE di NetBeans, su Kubuntu, funziona perfettamente.

Domanda:
c'è qualche altro modo per ottenere la cartella in cui è posizionato il programma .jar?
Oppure c'è, come al solito qualche bit di informazione che mi manca?

4 Risposte

  • Re: .jar su WInXP funziona ma da Kubuntu no

    ZioCrick ha scritto:


    c'è qualche altro modo per ottenere la cartella in cui è posizionato il programma .jar?
    Oppure c'è, come al solito qualche bit di informazione che mi manca?
    Sì, il modo per sapere la locazione di quel jar c'è. Ma è un pochino "sporca" come soluzione. Se la tua applicazione si basa sulla directory "corrente", è meglio se riesci ad avere tu il controllo della directory di avvio. Ovvero se hai prestabilito come avviare la applicazione (con un batch, collegamento, ecc...) allora imposta lì la directory corrente.
  • Re: .jar su WInXP funziona ma da Kubuntu no

    andbin ha scritto:


    Se la tua applicazione si basa sulla directory "corrente", è meglio se riesci ad avere tu il controllo della directory di avvio.
    Concordo al 100%
    Le soluzioni "sporche" le lascerei come ultimissima spiaggia, anche perché non posso credere che da Java non sia possibile ricavare la cartella "corrente" e da li accedere a delle sottocartelle.
    Ovvero se hai prestabilito come avviare la applicazione (con un batch, collegamento, ecc...)
    Qui però mi sono perso.
    Io intendo eseguire il programma lanciandolo come ho descritto prima, ovvero da una voce aggiunta ad-hoc nel menù di Start, come ho sempre fatto su WinXP e fin'ora anche su Kubuntu.
    ... allora imposta lì la directory corrente.
    Qui mi si era accesa una fiammella di speranza pensando che si potesse impostare la directory corrente nell'impostazione della voce di menù, come avviene in windows.
    Allora sono andato nell'editor di menù di KDE, e ho trovato nella scheda "Avanzate" il campo "Percorso di lavoro" e gli ho inserito il percorso /home/marco/NomeProg ... ma non funziona!
    e ho provato sia con che senza il "/" finale.
    Cosa non ho capito?
  • Re: .jar su WInXP funziona ma da Kubuntu no

    ZioCrick ha scritto:


    non posso credere che da Java non sia possibile ricavare la cartella "corrente"
    La directory "corrente" sì, è la system-property "user.dir". Ma banalmente basta usare un percorso "relativo" es.

    new FileInputStream("dati/xyz.dat")

    questo è GIÀ relativo alla directory "corrente".

    ZioCrick ha scritto:


    Qui però mi sono perso.
    Io intendo eseguire il programma lanciandolo come ho descritto prima, ovvero da una voce aggiunta ad-hoc nel menù di Start, come ho sempre fatto su WinXP e fin'ora anche su Kubuntu.
    Sì, io intendevo infatti che se hai preimpostato l'avvio della applicazione in modo che un utente usi solo quello, tramite script/batch/collegamento (o altro permesso dal S.O.), allora ragionevolmente puoi "controllare" la directory corrente.

    ZioCrick ha scritto:


    Allora sono andato nell'editor di menù di KDE, e ho trovato nella scheda "Avanzate" il campo "Percorso di lavoro" e gli ho inserito il percorso /home/marco/NomeProg ... ma non funziona!
    e ho provato sia con che senza il "/" finale.
    Mah ... non ho un linux con KDE a disposizione per provare ora ma in teoria dovrebbe funzionare. In Windows ogni collegamento ha la voce "Da" che consente di impostare la directory che poi sarà quella "corrente" all'avvio.
    Sui Linux c'è sicuramente un equivalente.
  • Re: .jar su WInXP funziona ma da Kubuntu no

    andbin ha scritto:


    La directory "corrente" sì, è la system-property "user.dir". Ma banalmente basta usare un percorso "relativo" es.

    new FileInputStream("dati/xyz.dat")

    questo è GIÀ relativo alla directory "corrente".
    Ciao Andrea,
    ho provato anche ad impostare il percorso "relativo" ... ma non funziona.

    Non so più cosa provare.
Devi accedere o registrarti per scrivere nel forum
4 risposte