Programm über Linux-Kommandozeile ausführen

OSchriever

Bekanntes Mitglied
Hi,
ich möchte aus meinem Programm einen Kommandozeilenbefehl auf Linux ausgeben, bekomme das aber nicht zu laufen. Ich habe das Programm auf meinem win10 geschrieben und dort getestet:

Runtime.getRuntime().exec("/bin/bash -c "C:\\Users\\Oliver Schriever\\Desktop\\Meinprogramm.jar"" );

Wie muss ich denn den Pfad unter Linux angeben, wenn sich das Programm unter home -> pi -> Desktop -> neu.jar befindet?

Danke
 
K

kneitzel

Gast
/home/pi/Desktop/neu.jar

Wobei ich da den Aufruf auch so ändern würde, so dass da java -jar mit aufgerufen wird. Dann reicht ein Java auf dem path und es muss nichts konfiguriert sein, dass er weiss, wie ein jar direkt zu starten ist...

Und die Quotes in Deinem Code sind falsch. Wenn dann hättest Du die inneren mit einem Backslash versehen müssen ...

Also sowas wie
Runtime.getRuntime().exec("/bin/bash -c java -jar /home/pi/Desktop/neu.jar" );
 

OSchriever

Bekanntes Mitglied
Vielen Dank, ich werde das gleich mal ausprobieren.
Weißt du auch wie ich dann ein python Programm ausführen kann? Also wenn auf dem Desktop Test.py ausgeführt werden muss?
LG
 
K

kneitzel

Gast
Du kannst die Aufrufe ja immer testen. Bei Python wird es in der Regel ein einfaches python Test.py sein.

Wenn die Shell unten drunter benötigt wird, halt ein bash -c davor. Aber das dürfte in vielen Fällen nicht notwendig sein denke ich mal ...
 

Kirby.exe

Top Contributor
Ist nicht python datei.py für Python 2 ? Ich benutze nämlich Python 3 und rufe meine Scripts immer mit python3 datei.py auf :)
 

Blender3D

Top Contributor
Wie muss ich denn den Pfad unter Linux angeben, wenn sich das Programm unter home -> pi -> Desktop -> neu.jar befindet?
Java:
String desktopPath = System.getProperty("user.home") + "/Desktop/";
        try {
            Runtime.getRuntime().exec("/bin/bash -c " + desktopPath + "neu.jar");
        } catch (IOException e) {
            e.printStackTrace();
        }
 

OSchriever

Bekanntes Mitglied
Also irgendwie scheint alles nicht zu funktionieren, wenn ich das Programm direkt aus der Console strate, dann läufts.
Hier das Java-Beispiel:
Die Anweisung
Code:
    try {
                    Runtime.getRuntime().exec("/bin/bash -c java -jar /home/pi/Desktop/Test2.jar");
                } catch (IOException ex) {
                    ex.printStackTrace();
                }

führt zu nix.
Genauso bei "Test.py"
 

OSchriever

Bekanntes Mitglied
Wenn ich das Terminal öffne, dann bin ich ja wieder raus aus dem Verzeichnis, oder wie soll ich das prüfen?
Kann es daran liegen, dass ich dafür so nicht die Rechte hab? Weil ich muss ja wenn ich den Befehl manuell im Terminal absetze immer noch vorher eben sudo eingeben...
 
K

kneitzel

Gast
Wenn die Applikation root Rechte braucht, dann musst du diese auch mit root Rechten starten, sonst könnte es durchaus an fehlenden Rechten liegen ...
 

OSchriever

Bekanntes Mitglied
Also mal zur Info: Ich hab von Linux keine Ahnung. Ob das jetzt gut oder schlecht ist weiß ich nicht. 😂
Also wenn ich direkt im Terminal das Verzeichnis auf Desktop wechsle, dann kann ich das Programm so starten. Wenn ich aber den Pfad angebe muss ich da ein sudo vor setzen.
Wenn ich aber jetzt
"/bin/bash sudo -c java -jar /home/pi/Desktop/Test2.jar"
benutze, dann läuft auch noch nix...
 
K

kneitzel

Gast
Also das klingt sehr dubios, was du da machst. Wenn es ohne sudo funktioniert, dann sollte es keine root Rechte brauchen ...

Was macht Deine Applikation, die du startest? Legt die irgendwelche Dateien oder Verzeichnisse an? Und das im Arbeitsverzeichnis? Das könnte erklären, dass es mit sudo mit Pfad aus anderen Verheichnissen funktioniert.... (und du dir ggf. dein System zugemüllt hast)

Ich würde dir empfehlen, die ein generelles Verständnis aneignen solltest, so dass du so Dinge verstehst. Sonst kommt wohl nichts so sinnvolles raus fürchte ich.

Was mir z.B. einfällt wäre sowas wie
bash -c ( cd /home/pi/desktop ; java -jar Test2.jar)
Wobei man das etwas austesten müsste ... aber etwas in der Art sollte funktionieren ...
 

OSchriever

Bekanntes Mitglied
Die Applikation ist nur ein kleines Python-Programm um ein Relais zu schalten. Das hat sage und schreibe 3 Zeilen Code(inklusive Import 😂) :
Code:
import piplates.RELAYplate as RELAY
RELAY.getID(0)
RELAY.relayON(0,3)

Das Beispiel mit dem .jar-Programm habe ich nur genommen, weil ich das zu Testzwecken besser kontrollieren kann, da es ne gui hat.

Ich kann die Programme doch so ausführen, weiß auch nicht was da vorhin schiefgelaufen ist.

Also ausführen per Hand kein Problem, aber über mein Programm nicht.
Da habe ich einfach nen Button, der übern Actionlistener den Befehl ausgibt.
Da gibt es auch keine Fehler im Code, habe extra noch einen Button zur Kontrolle gemacht, der mir was ausgibt. Das läuft...
 
K

kneitzel

Gast
Gib die genauen Informationen, was du exakt machst. Und zwar mit dem Python Programm. Wie startest du dieses im Terminal? Und wie startest du es in deinem Java Programm?

Irgendwas läuft da bei dir falsch. Und wenn es ohne Root Rechte funktionieren kann, dann lass sudo weg! Das ist keine Lösung, wenn du die Rechte nicht brauchst.
 

OSchriever

Bekanntes Mitglied
Also im Terminal gebe ich folgenden Befehl ein:
python3 /home/pi/Desktop/RELAYON.py

Und das ist der relevante Code des Programms:
Code:
public class Fenster extends JFrame {

    
    private static final long serialVersionUID = -5413214781097583793L;
    private JButton relais;

    class SchaltflaechenListener implements ActionListener {
        
        @Override
        public void actionPerformed(ActionEvent e) {
            if (e.getActionCommand().equals("Relais")) {
                
                try {
                    Runtime.getRuntime().exec("/home/pi/Desktop/RELAYON.py");
                    
                } catch (IOException ex) {
                    ex.printStackTrace();
                    JOptionPane.showConfirmDialog(null, ex);
                }
            }
        }
    }

    public Fenster(String text) {
        super(text);
        links = new JButton("Relais");

        
        relais.addActionListener(new SchaltflaechenListener());
    
        setLayout(new BorderLayout(25, 25));
        
        setBounds(600, 500, 200, 200);
        // die Schaltflächen hinzufügen und nach Layout anordnen
        add(relais, BorderLayout.WEST);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);

    }

}
 
K

kneitzel

Gast
Dann hast du aus meiner Sicht zwei Optionen, wobei ich mit der zweiten nicht 100% sicher bin, da ich mit python nichts mache:

1) der Aufruf sollte dann auch das python3 beinhalten. Ggf incl vollem path (der wird durch which python3 angezeigt).

2) Wenn du dem Script execute Rechte gibst, dann ist es direkt ausführbar. (chmod 775 auf die Datei)
Das setzt aber neben den Rechten auf der Datei voraus, dass die erste Zeile ein #!/usr/bin/python3 oder so enthält. Das ist der Interpreter für das Script, ggf mit Optionen und so ...

Das wären die ersten Ansätze, die ich probieren würde ...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F In OSX: Java-Programm über URI-Scheme aufrufen mit Parameter? Allgemeine Java-Themen 0
L Prüfen, ob Programm über 32bit oder 64bit Java ausgeführt wird Allgemeine Java-Themen 4
C Java Programm über SSH starten Allgemeine Java-Themen 16
E FF Einstellungen über Programm ändern? Allgemeine Java-Themen 7
M Java programm über cmd öffnen Allgemeine Java-Themen 2
M Wie Java-Programm über Batch-file starten? Allgemeine Java-Themen 8
M datei über rechten mausklick aus explorer in programm laden Allgemeine Java-Themen 4
M Frage über Programm (IDE für Anfänger) Allgemeine Java-Themen 6
S Programm über Konsole startet nicht Allgemeine Java-Themen 2
Jose05 Umgang mit Exceptions in einen Programm Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
R Programm führt Methoden gleichzeitig aus Allgemeine Java-Themen 2
T Der Aufruf von CMD-Programm Allgemeine Java-Themen 30
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
Mike80 Processing Programm fiert ohne Arduino ein Allgemeine Java-Themen 2
B Mysteriöse Ergebnisse beim Baccarat Programm? Allgemeine Java-Themen 13
districon Programm zum Durchsuchen von (Ebay-)Artikeln Allgemeine Java-Themen 1
T Addons im eigenen Programm Allgemeine Java-Themen 1
Calli11 Was muss ich hier in die Main schreiben, damit das Programm ausgeführt wird? Allgemeine Java-Themen 4
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
S Formel für Sonnenwinkel in ein Programm überführen Allgemeine Java-Themen 11
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
Tiago1234 Warum hängt sich mein Programm auf? Allgemeine Java-Themen 22
D Programm designen Allgemeine Java-Themen 1
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
O 2D-Grafik BioFarben-Programm soll auf Vollbild schalten Allgemeine Java-Themen 1
S Nachrichten Filter Programm Allgemeine Java-Themen 14
S Programm schreiben, das mir aufgrund von Schlagwörtern, die ich im Internet suche, relevante Themen sofort anzeigt. Allgemeine Java-Themen 1
T Hilfe bei Programm. IDE: Eclipse mit EV3-Plugin, lejos Allgemeine Java-Themen 8
Lukas2904 Swing Anzeigen lassen das das Programm geschlossen wurde Allgemeine Java-Themen 3
TechnikTVcode Mail Programm Allgemeine Java-Themen 2
S Programm entwickeln, welches ein Dreieckspuzzle lösen kann Allgemeine Java-Themen 5
R Lesen von Interfaces (Programm Vervollständigen) Allgemeine Java-Themen 10
Dann07 Java-Programm findet DLLs nicht! Allgemeine Java-Themen 20
OSchriever Linux-Programm öffnen Allgemeine Java-Themen 6
P USER Management in SQL übergreifend auf JAVA Programm Allgemeine Java-Themen 41
L Eclipse Konsole im exportierten Programm Allgemeine Java-Themen 2
D Verkauf von einem Programm welches ich in Java geschrieben habe Allgemeine Java-Themen 4
M Programm erkennt String aus .txt Datei nicht Allgemeine Java-Themen 3
P Erstelltes Programm ist doppelt so groß Allgemeine Java-Themen 11
N Programm nach Abschluss neustarten lassen Allgemeine Java-Themen 6
S Einfaches Programm programmieren Allgemeine Java-Themen 5
M kleines KI Programm Idee Allgemeine Java-Themen 7
D Boolean von ein anderem Java Programm während der Laufzeit ändern Allgemeine Java-Themen 23
L Excel Datei löscht sich selbst im Programm - Java Allgemeine Java-Themen 3
I File ausführen und mein Programm bearbeiten lassen Allgemeine Java-Themen 11
ralfb1105 Starten Java App(s) (.jar) aus einem Java Programm Allgemeine Java-Themen 18
temi Java Programm aus einer DB laden und starten Allgemeine Java-Themen 2
N Programm startet nicht, nur per cmd Allgemeine Java-Themen 5
J Programm zum Suchen eines Wortes im Dateisystem Allgemeine Java-Themen 4
E Java Programm mit Clients erweitern - Möglichkeiten? Allgemeine Java-Themen 2
Joker4632 Methoden Befehl an bereits extern geöffnete Programm-spezifische Konsole senden Allgemeine Java-Themen 1
M Dieses Programm schneller machen? Allgemeine Java-Themen 2
R Programm zur Rekursion Allgemeine Java-Themen 5
N Quicksort Programm hängt sich auf Allgemeine Java-Themen 6
S Compiler-Fehler Programm verhält sich in Eclipse anders Allgemeine Java-Themen 1
B Input/Output Programm zum Auslesen/Beschreiben von Textdateien, wie Geschwindigkeit erhöhen? Allgemeine Java-Themen 18
dereki2000 Programm veröffentlichen Allgemeine Java-Themen 14
mrbig2017 Threads Chat Programm mit Threads? Allgemeine Java-Themen 2
M Suche aktuelle Apache Poi Bibliothek zum Einbinden in mein Programm Allgemeine Java-Themen 2
J Java "Bank Programm" Brauche eure Hilfe Allgemeine Java-Themen 3
S Java Programm (Spiel mit den Boxen) Allgemeine Java-Themen 1
kodela Programm hängt in der Ereigniswarteschlange Allgemeine Java-Themen 13
A Java Programm verbessern/vereinfachen Allgemeine Java-Themen 20
P Programm darf nicht mehrfach startbar sein Allgemeine Java-Themen 16
S Programm hängt sich manchmal (selten) auf Allgemeine Java-Themen 9
JavaNewbie2.0 Programm nicht im Taskmanager schliesen können Allgemeine Java-Themen 15
J XML Datei mit installiertem Programm öffnen Allgemeine Java-Themen 7
Arif Input/Output Dateien im Jar-Programm speichern Allgemeine Java-Themen 12
H Java FX 2 Fragen um Programm in mehrere sprachen zu übersetzen in Gluon Framwork Allgemeine Java-Themen 3
JavaNewbie2.0 Programm bleibt "stehen" Allgemeine Java-Themen 2
JavaNewbie2.0 Start eines Anderen Programm erkennen Allgemeine Java-Themen 6
E Mit Java ein Python Programm starten Allgemeine Java-Themen 20
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
Aruetiise Methoden .jar mit Programm öffnen Allgemeine Java-Themen 2
C anderes Programm schließen! Allgemeine Java-Themen 5
C Webseiten Programm problem Allgemeine Java-Themen 5
E Programm auf Installation prüfen Allgemeine Java-Themen 1
J Programm zum Download von CSV-Dateien Allgemeine Java-Themen 4
E Programm ohne Windowsrand(Vollbild) ? Allgemeine Java-Themen 5
G Programm, das nach abgearbeiteter main Methode weiterläuft Allgemeine Java-Themen 72
P Schnittstelle java Programm zu Webserver / Browser Allgemeine Java-Themen 2
J Schutz Programm Jar Exe Allgemeine Java-Themen 7
R javax.comm --> Programm funktioniert nach Export nicht mehr Allgemeine Java-Themen 0
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
U Input/Output Warum wirft mir das Programm diesen Fehler? Allgemeine Java-Themen 6
X jvm exception abfangen und an externes Programm schicken Allgemeine Java-Themen 4
B Programm updaten mit FXLauncher Allgemeine Java-Themen 1
D Nicht quelloffenes Programm Allgemeine Java-Themen 5
F Java-Programm lizensieren Allgemeine Java-Themen 21
I Programm im Hintergrund bei Windows zur Steuerung der Tastatur nutzen Allgemeine Java-Themen 2
X Aus Programm "Installationsprogramm" machen Allgemeine Java-Themen 6
T Java Programm in Internetseite? Allgemeine Java-Themen 4
T Java Programm frisst RAM Allgemeine Java-Themen 6
H Alter Java-Programm läuft nicht mehr. Laut strace fehlt libpthread.so.0 Allgemeine Java-Themen 3
H Runtime reagiert erst wenn Programm abbricht Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben