Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Linux] Lancer un screen avec Runtime

Sujet résolu
    30 juin 2015 à 13:04:14

    Bonjour, je souhaiterais executer une commande avec Runtime.getRuntime().exec(), pour lancer un screen linux (un serveur minecraft en l'occurence mais peu importe).

    Voila le code :

    public static void launchScreen(File script) {
    	try {
    		Process p = Runtime.getRuntime().exec(
    				"screen java -Xms512M -Xmx512M -jar spigot1.8.jar", null,
    				script);
    		p.waitFor();
    			
    		// Ecriture du flux du process dans error.txt pour voir le probleme
    		InputStream fis = p.getInputStream();
    		FileOutputStream fos = new FileOutputStream(new File("error.txt"));
    
    		byte[] buf = new byte[8];
    
    		while (fis.read(buf) >= 0) {
    			fos.write(buf);
    
    			for (byte bit : buf) {
    				System.out.print("\t" + bit + "(" + (char) bit + ")");
    				System.out.println("");
    			}
    			buf = new byte[8];
    
    		}
    		System.out.println("Copie terminée !");
    		if (fos != null) fos.close();
    			
    	} catch (IOException e) {
    		e.printStackTrace();
    	} catch (InterruptedException e) {
    		e.printStackTrace();
    	}
    }

    -> la variable File script n'a aucun probleme (elle représente le dossier ou il y a le jar spigot1.8.jar)

    -> Ce code ne fais absolument rien dans la console

    -> Le fichier error.txt contient la phrase "Must be connected to a terminal."

    Auriez vous une idée pour m'aider ? ça fais 2h que je cherche partout mais rien n'y fais :(

    Merci d'avance, je compte sur vous :)

    PS : les lignes de 8 à 25 ne sont pas importante c'est juste pour ecrire le flux du process dans un fichier.

    -
    Edité par La Gregance 30 juin 2015 à 13:05:32

    • Partager sur Facebook
    • Partager sur Twitter

    AtomicServer, un moyen rapide pour crée une application Client-Serveur (Topic OpenClassrooms).

      30 juin 2015 à 22:21:48

      Après approfondissement de mes recherches, le problème viens du screen mais je ne peux absolument pas m'en passer, personne n'a d'idée ?
      • Partager sur Facebook
      • Partager sur Twitter

      AtomicServer, un moyen rapide pour crée une application Client-Serveur (Topic OpenClassrooms).

        30 juin 2015 à 22:45:42

        Bonsoir.

        Que se passe-t-il lorsque tu exécutes la commande manuellement dans le terminal ?

        • Partager sur Facebook
        • Partager sur Twitter
        Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
          1 juillet 2015 à 13:22:18

          Dans le terminal cela marche très bien ...

          Résolu : il faut rajouter l'option -dmS au screen pour ce que ça interesse :

          screen java -Xms512M -Xmx512M -jar spigot1.8.jar

          devient :

          screen -dmS <nom_du_screen> java -Xms512M -Xmx512M -jar spigot1.8.jar

          -
          Edité par La Gregance 1 juillet 2015 à 13:22:32

          • Partager sur Facebook
          • Partager sur Twitter

          AtomicServer, un moyen rapide pour crée une application Client-Serveur (Topic OpenClassrooms).

          [Linux] Lancer un screen avec Runtime

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown