Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [JAVA] Errore nella creazione o esecuzione JAR

    Salve a tutti, ho un piccolo problema con NetBeans. Ho fatto un mio programma java con NetBeans e funziona perfettamente. Creo il jar e netbeans scrive nella console

    codice:
    init: 
    deps-clean: 
    Updating property file: D:\blabalabl 
    Deleting directory D:\blabalbalbal 
    clean: 
    init: 
    deps-jar: 
    Created dir: D:\blabalbalabl 
    Updating property file: D:\balbalablabal\built-jar.properties 
    Created dir: D:\balbalbalabl\classes 
    Created dir: D:\balbalabl\empty 
    Compiling 48 source files to D:\blabalbal\classes 
    Note: Some input files use or override a deprecated API. 
    Note: Recompile with -Xlint:deprecation for details. 
    Note: Some input files use unchecked or unsafe operations. 
    Note: Recompile with -Xlint:unchecked for details. 
    Copying 10 files to D:\balbalablal\classes 
    compile: 
    Created dir: D:\balbalbalabl\dist 
    Copy libraries to D:\balbalabl\lib. 
    Building jar: D:\balbalabl\Post-In.jar 
    To run this application from the command line without Ant, try: java -jar "D:\Dropbox\Programmazione\Informa\Post-In\dist\Post-In.jar" 
    jar: COSTRUITO CON SUCCESSO (tempo totale: 2 secondi)
    Ovviamente dove trovate "blabalbal" in realtà cè il percorso dei file.

    Il problema sorge quando tento di eseguire il jar che la console mi restituisce:
    codice:
    Microsoft Windows [Versione 6.1.7601] 
    Copyright (c) 2009 Microsoft Corporation. Tutti i diritti riservati. 
    C:\balbal>java -jar "D:\blabalbal\Post- In.jar"
    C:\blabalbalabl\Server (Impossibile trovare il percorso specifi cato)
    Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException : String index out of range: -1 at java.lang.String.substring(Unknown Source) at MainProject.Parametri.setServer(Parametri.java:27) at MainProject.SchIniziale.<init>(SchIniziale.java:33) at MainProject.SchIniziale$5.run(SchIniziale.java:169) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
    Che posso fare?

  2. #2
    Ma perchè non li leggete i messaggi di errore?!?!

    codice:
    java.lang.StringIndexOutOfBoundsException : 
    String index out of range: -1 at 
    java.lang.String.substring(Unknown Source) at
    MainProject.Parametri.setServer(Parametri.java:27) at 
    MainProject.SchIniziale.<init>(SchIniziale.java:33) at
    MainProject.SchIniziale$5.run(SchIniziale.java:169) at
    java.awt.event.InvocationEvent.dispatch(Unknown Source) at 
    java.awt.EventQueue.dispatchEventImpl(Unknown Source) at 
    java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown 
    Source) at java.awt.EventQueue$1.run(Unknown Source) at 
    java.security.AccessController.doPrivileged(Native Method) at 
    java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at 
    java.awt.EventQueue.dispatchEvent(Unknown Source) at 
    java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at 
    java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at 
    java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at 
    java.awt.EventDispatchThread.pumpEvents(Unknown Source) at 
    java.awt.EventDispatchThread.pumpEvents(Unknown Source) at 
    java.awt.EventDispatchThread.run(Unknown Source)
    Stai sforando con gli indici nella classe Parametri alla riga 27.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Ho intuito l'errore ma ancora non l'ho capito. Quell'errore fa riferimento a queste due righe di codice:
    codice:
    String temp = new LetturaImpostazioni().lettura("Server"); 
    temp=temp.substring(0, temp.length()-1);
    In particolare la 27 è la seconda riga... "Server" è un file dove scrivo le impostazioni del server ed è salvato nella cartella principale. Per leggere il file ho utilizzato questi comandi:
    codice:
    File doc=new File("src\\MainProject\\"+in);
    Come mai a NetBeans piace questo codice e trova il file ma a quanto pare con il jar no? Come faccio a trovare il file salvato nel progetto? Non so se mi sono spiegato... come faccio a conoscere il path relativo al jar???

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    In genere con i file è meglio parlare in termini o di path assoluti (partendo da una posizione nota e in cui si è sicuri di poter leggere o scrivere) o di path relativi al percorso di esecuzione (che trovi tramite resource stream).
    Nel momento in cui esegui un jar, il file verrà cercato all'interno del path corrente (quello da cui fai java -jar) e se non lo trova darà eccezione. Nel tuo caso non valorizza correttamente la stringa di cui tenti un substring è hai una indexofbound exception.

    L'altra soluzione è fare in modo che il file in questione rientri nel build path di destinazione (in pratica del jar). Ricorda anche di specificare nel jar che stai facendo questo giro.
    Infine ricorda che aggiungere questo file al jar crea problemi in quanto una sua modifica comporta la nuova creazione del jar, quindi l'opzione "leggi file con path assoluto" per me resta la migliore

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.