Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
Abbiamo provato per diverse settimane il nuovo Magic V5 di HONOR, uno smartphone pieghevole che ci ha davvero stupito. Il device è il più sottile (solo 4.1mm) ma non gli manca praticamente nulla. Potenza garantita dallo Snapdragon 8 Elite, fotocamere di ottima qualità e batteria in silicio-carbonio che garantisce un'ottima autonomia. E il Prezzo? Vi diciamo tutto nella nostra recensione completa.
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro)
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro)
Google Pixel 10 Pro XL è il top di gamma della serie Pixel, presentando un ampio display Super Actua da 6.8 pollici insieme alle novità della serie, fra cui la ricarica wireless magnetica Pixelsnap e le nuove funzionalità AI avanzate. Il comparto fotografico include un sistema a tripla fotocamera con zoom Pro Res fino a 100x, mentre il processore Tensor G5 con 16GB di RAM garantisce prestazioni percepite molto elevate su Android.
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Forte della piattaforma Qualcomm Snapdragon X, il notebook Lenovo IdeaPad Slim 3 riesce a coniugare caratteristiche tecniche interessanti ad uno chassis robusto, con autonomia di funzionamento a batteria che va ben oltre la tipica giornata di lavoro. Un notebook dal costo accessibile pensato per l'utilizzo domestico o in ufficio, soprattutto con applicazioni native per architettura ARM
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-10-2007, 16:22   #1
alfonso534791
Junior Member
 
Iscritto dal: Oct 2007
Messaggi: 6
[Java] exec()

Salve a tutti,
ho un grosso problema con java, non riesco ad eseguire un programma esterno con la funzione exec(). posto il codice:

public void training() throws IOException{
Process p=Runtime.getRuntime().exec("./RPCL/ulearn");
}

molto semplice. Questa funzione viene richiamata da altro pezzo di codice che credo sia inutile trascrivere. il punto è che il file ulearn nella cartella RPCL viene visto dal metodo in quanto non genera errore. Solo che è come se non fosse partito. Infatti l'esecuzione del programma, da shell, deve generare un file di testo, che invece non genera. Se lo facio a mano, da shell digito ./RPCL/ulearn funziona e crea il file.
Qualcuno sà aiutarmi,
Grazie mille
alfonso534791 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2007, 16:28   #2
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
Che tipo di file è ulearn?
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2007, 20:59   #3
alfonso534791
Junior Member
 
Iscritto dal: Oct 2007
Messaggi: 6
è un file eseguibile ottenuto dalla compilazione del file ulearn.c , ho dimenticato di precisare che tutto ciò lo faccio su Linux Debian 2.6.21, e che il programma all'inizio funzionava, fino a quando un bel giorno(Lunedì) ha smesso per motivi che ignoro!!!
alfonso534791 è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2007, 22:06   #4
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
devi semplicemente gestire l'output così ad occhio..
Se provi ad eseguire un file e questo file scrive qualcosa sulla stdout e non redirezoni l'output con il metodo exec si incasina tutto e il programma si inceppa.
Una soluzione completa la trovi con google (a quest'ora non mi va di goglare ), ma ad occhio se esegui "ulearn > output.out" potrebbe andare.
Se non va domani vedo di trovarti la procedura per gestire input e output da exec
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2007, 15:58   #5
alfonso534791
Junior Member
 
Iscritto dal: Oct 2007
Messaggi: 6
non và, cmq volevo precisare anche che il programma ha un file di configurazione che deve leggere, non è che con exec() bisogna occuparsi anche degli input oltre che degli output?
alfonso534791 è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2007, 18:45   #6
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
...un idea per controllare l'output e l'input...

Codice:
 try {
        	proc = Runtime.getRuntime().exec(iltuoprocesso);
            input = new BufferedReader(newInputStreamReader(proc.getInputStream()));
            output = proc.getOutputStream();
            new Thread(){
                public void run(){
                    String line;
                    try {
                    	while((line = input.readLine()) != null){
                                System.out.println(line);
    			        }	
                    } catch(Exception e) {
                    	 System.out.println(e);
                    }
                }
                
            }.start();
            
        } catch (IOException e) {
        	e.printStackTrace();
        }
...invio di codice al processo slave...

Codice:
private void SendCommand(String cmd){
        try {
            if(proc != null){
               output.write(cmd.getBytes());
               output.flush();
            }
        }catch(IOException e) {
        	System.out.println(e);
        }
    }
...ma potresti anche provare con un semplice...

Codice:
Process child = Runtime.getRuntime().exec(ilmioporcesso);
			child.waitFor();
...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2007, 13:56   #7
alfonso534791
Junior Member
 
Iscritto dal: Oct 2007
Messaggi: 6
non và,
per provare a fare un debugging ho usato

int p=Runtime.getRuntime().exec("./ulearn").exitValue();

per vedere se l'esecuzione và a buon fine. ebbene genera la seguente eccezzione

va.lang.IllegalThreadStateException

cosa può essere?
alfonso534791 è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2007, 13:59   #8
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
Quote:
Originariamente inviato da alfonso534791 Guarda i messaggi
non và,
per provare a fare un debugging ho usato

int p=Runtime.getRuntime().exec("./ulearn").exitValue();

per vedere se l'esecuzione và a buon fine. ebbene genera la seguente eccezzione

va.lang.IllegalThreadStateException

cosa può essere?
...indica che il processo non è ancora terminato...in caso di termine avvenuto dovrebbe restituire 0 se non sbaglio...

...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2007, 14:02   #9
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
...mh...non potrebbe essere un problema di locazione?...

Codice:
public void launchCommand(){
		
		try{
			File dir = new File (".");
			String file = dir.getCanonicalPath();
			System.out.println(file);
			Process child = Runtime.getRuntime().exec("./go.sh");
			child.waitFor();
		}catch (Exception e){
			System.out.println(e);
		}
	}
...cosa scrive a console?...

...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2007, 16:58   #10
alfonso534791
Junior Member
 
Iscritto dal: Oct 2007
Messaggi: 6
il path è guisto,
non sò proprio cosa possa essere a non farlo funzionare!!!
alfonso534791 è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2007, 19:42   #11
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
Quote:
Originariamente inviato da alfonso534791 Guarda i messaggi
il path è guisto,
non sò proprio cosa possa essere a non farlo funzionare!!!
...mh...prova a iniziare il tuo script con uno spostamento alla directory di residenza del comando...è possibile che l'exec non parta dalla directory da cui è lanciato il programma java...

Codice:
#!/bin/sh
cd $JAVA_HOME/lib/ext
./ulearn
...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 24-10-2007, 11:35   #12
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da alfonso534791 Guarda i messaggi
Salve a tutti,
ho un grosso problema con java, non riesco ad eseguire un programma esterno con la funzione exec(). posto il codice:

public void training() throws IOException{
Process p=Runtime.getRuntime().exec("./RPCL/ulearn");
}

molto semplice. Questa funzione viene richiamata da altro pezzo di codice che credo sia inutile trascrivere. il punto è che il file ulearn nella cartella RPCL viene visto dal metodo in quanto non genera errore. Solo che è come se non fosse partito. Infatti l'esecuzione del programma, da shell, deve generare un file di testo, che invece non genera. Se lo facio a mano, da shell digito ./RPCL/ulearn funziona e crea il file.
Qualcuno sà aiutarmi,
Grazie mille
Guarda qui -> ExecHelper
banryu79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli Recensione OnePlus Watch 3 43mm: lo smartwatch c...
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura BOOX Note Air4 C è uno spettacolo: il tab...
Roscosmos: RSC Energia smentisce la cris...
Da 309€ a 549€, fino a 32GB di RAM: ecco...
Beats mai così convenienti: sconti fino ...
Da 27,78€ a 56,99€: 5 accessori indispen...
3 minuti: è il tempo per vedere l...
Gli Amazfit sono ora gli smartwatch più ...
Rowenta alza la posta: scopa elettrica s...
6 robot per le pulizie completi in offer...
Friggitrice ad aria Cecofry Full InoxBla...
iPhone 16 Pro Max a 10€ in più del minim...
Una chiavetta USB, ma SanDisk Ultra Slid...
La bolla dell'AI: perché l'econom...
Lo smartphone dovrebbe essere usato solo...
SpaceX: i video e le foto dello spettaco...
Anche a Pescara si passa ai fatti: e-bik...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:32.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v