Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50

    seguire un file.jar da codice

    Salve a tutti!
    Stò cercando di creare un'applicazione che al click di un pulsante mi esegue un'applicazione java.

    ho provato a eseguire questo codice:

    codice:
    try {
               processo = Runtime.getRuntime().exec("java -jar /home/io/Solr/apache-solr-3.1.0/example/start.jar");
            } catch (IOException ex) {
               Logger.getLogger(ServerSolr.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    Ma non ho ottenuto molto! qualcuno può aiutarmi? grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    cosa hai ottenuto?

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50
    assolutamente niente!!

    che non funziona lo vedo perchè start dovrebbe attivare un server in cui poi devo caricare dei file. Se provo a caricarceli mi dice che non è possibile connettersi XD

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50
    Mi correggo

    ho questo:

    java.lang.ClassNotFoundException


  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    vedi che non è vero che non hai ottenuto niente!!!
    posta tutto lo stacktrace per sicurezza, ma ad occhio e croce è un problema di classpath (che non hai provveduto a settare correttamente lanciando il programma)

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50
    codice:
    java.lang.ClassNotFoundException: org.mortbay.xml.XmlConfiguration
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    	at org.mortbay.start.Main.invokeMain(Main.java:179)
    	at org.mortbay.start.Main.start(Main.java:534)
    	at org.mortbay.start.Main.start(Main.java:441)
    	at org.mortbay.start.Main.main(Main.java:119)
    Eppure io l'avevo settato
    da shell avevo scritto:

    set CLASSPATH=/home/io/Solr/apache-solr-3.1.0/example/start.jar

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    a parte che su linux è export e non set, poi quell'export vale solo per la sessione (cioè appena chiudi la shell non vale più) quindi o cambi la configurazione del sistema oppure vai a specificare da comando il path del tuo jar.
    Potrebbe funzionarti nel caso in cui la shell in cui fai export è la stessa che usi per lanciare il tuo programma java che a sua volte lancia il jar.
    Questa è la soluzione generale
    codice:
    java -cp /home/io/Solr/apache-solr-3.1.0/example/start.jar nomeMainClassContenutaNelJar
    ma se ti serve altra roba del classpath allora la riga si allunga un bel po' (e non è nemmeno comoda da scrivere)

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50
    Ottima spiegazione! grazie!!
    Ho sempre avuto dei problemi con i classpath infatti =P

    Ho solo un problema. Non conosco il nome della classe main perchè start.jar è un'eseguibile non di mia creazione, l'ho scaricato da internet che mi attiva un server. Io devo lavorare su quel server, ma vorrei attivarlo appunto con un pulsante, non andando ogni volta sulla shell, andare nella directory del file e eseguirlo...
    Una soluzione che aevo pensato era di crearmi un file bash per eseguirlo, il problema è che deve adare tutto anche soto windows!!! XD XD

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    l'idea dello script non è male, ti basta vedere se sei su win o linux e avviare un .bat o .sh a seconda di dove ti trovi. in quel caso aggiorni il classpath (ti consiglio di aggiungere a quello esistente il tuo jar) e avvii come sai fare.
    Inoltre puoi scompattare il jar (che è niente di più che un archivio) e vedere nel manifest la main class

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    50
    Allora ho provato ad aprire il jar con il gestore degli archivi e ho visto tra i file class che c'è una classe Main.class che a logica dovrebbe essere la classe principale!!
    Quindi ho riprovato con il codice per il settaggio del classpath che mi hai passato e ho ottenuto questo:

    codice:
    java -cp /home/io/Solr/apache-solr-3.1.0/example/start.jar Main
    Exception in thread "main" java.lang.NoClassDefFoundError: Main
    Caused by: java.lang.ClassNotFoundException: Main
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    Could not find the main class: Main. Program will exit.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.