GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menjalankan skrip Python dari Java?

Anda tidak dapat menggunakan PIPA di dalam Runtime.getRuntime().exec() seperti yang Anda lakukan dalam contoh Anda. PIPA adalah bagian dari cangkang.

Anda bisa melakukan keduanya

  • Masukkan perintah Anda ke skrip shell dan jalankan skrip shell itu dengan .exec() atau
  • Anda dapat melakukan sesuatu yang mirip dengan yang berikut

    String[] cmd = {
            "/bin/bash",
            "-c",
            "echo password | python script.py '" + packet.toString() + "'"
        };
    Runtime.getRuntime().exec(cmd);
    

Jawaban @ Alper seharusnya berhasil. Lebih baik lagi, jangan gunakan skrip shell dan pengalihan sama sekali. Anda dapat menulis kata sandi langsung ke proses 'stdin menggunakan (nama yang membingungkan) Process.getOutputStream() .

Process p = Runtime.exec(
    new String[]{"python", "script.py", packet.toString()});

BufferedWriter writer = new BufferedWriter(
    new OutputStreamWriter(p.getOutputStream()));

writer.write("password");
writer.newLine();
writer.close();

Anda akan melakukan yang lebih buruk daripada mencoba menyematkan jython dan menjalankan skrip Anda. Contoh sederhana akan membantu:

ScriptEngine engine = new ScriptEngineManager().getEngineByName("python");

// Using the eval() method on the engine causes a direct
// interpretataion and execution of the code string passed into it
engine.eval("import sys");
engine.eval("print sys");

Jika Anda membutuhkan bantuan lebih lanjut, tinggalkan komentar. Ini tidak membuat proses tambahan.


Linux
  1. Bagaimana cara menginstal skrip untuk dijalankan di mana saja dari baris perintah?

  2. Bagaimana cara mendapatkan output dari gdb.execute di PythonGDB (GDB 7.1)?

  3. Cara mengeksekusi file python di linux

  1. Menjalankan skrip Python dari PHP

  2. mengembalikan nilai dari skrip python ke skrip Shell

  3. Bagaimana cara mengeksekusi kode di shell Django dengan skrip python eksternal?

  1. Bagaimana Cara Mengeksekusi Skrip Sh Dari Pintasan Desktop?

  2. Bagaimana Cara Memperbarui Python Dari 3.4.3 Menjadi 3.5??

  3. Bagaimana cara menjalankan skrip bash?