Як перадаць аргумент на Java

Прывітанне Я выкарыстоўваю гэты код для запуску абалонкі script.the рэчы, я хачу перадаць аргумент «Трэніровачны-Java» у той час як я бег program.like гэта

like java Classname trng-java

код:

import java.io.*;

public class Test
{


public static void main(String[] args)
{
    try {
        Runtime rt = Runtime.getRuntime();
        Process pr = rt.exec(new String[]{"/bin/sh", "/tmp/test.sh", "trng-java"});

        BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
        String line = "";
        while ((line = input.readLine()) != null) {
            System.out.println(line);
        }
    } 
    catch (Exception e) {
        System.out.println(e.toString());
        e.printStackTrace();
    }
}
}

Як гэта зрабіць?

0
Калі яго зменнай выкарыстоўвайце $ Трэніровачныя-ява
дададзена аўтар Grijesh Chauhan, крыніца
Вы маеце на ўвазе прыняць яго ў якасці ўкладу ў вашай праграме? Гэта ў Арг масіва гэта параметр асноўнай.
дададзена аўтар Rup, крыніца

6 адказы

Аргумент вы перадаеце будзе знойдзены ў параметрах ARGS як Струнны yourParam = Арг [0]

5
дададзена

Аргументы каманднага радка перадаюцца ў прыкладанне ў радку [] Арг параметраў, так што вы павінны быць у стане атрымаць доступ да значэння, выкарыстоўваючы Арг [0] .

Process pr = rt.exec(new String[]{"/bin/sh", "/tmp/test.sh", args[0] });
3
дададзена

Пры перадачы аргументаў на прыкладанне Java, яны даступныя праз Арг [] масіва ў галоўным.

See: http://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html which I am quoting:

Echoing Command-Line Arguments

The Echo example displays each of its command-line arguments on a line by itself:

public class Echo {
    public static void main (String[] args) {
        for (String s: args) {
            System.out.println(s);
        }
    }
}

The following example shows how a user might run Echo. User input is in italics.

java Echo Drink Hot Java
Drink
Hot
Java

Parsing Numeric Command-Line Arguments

If an application needs to support a numeric command-line argument, it must convert a String argument that represents a number, such as "34", to a numeric value. Here is a code snippet that converts a command-line argument to an int:

int firstArg;
if (args.length > 0) {
    try {
        firstArg = Integer.parseInt(args[0]);
    } catch (NumberFormatException e) {
        System.err.println("Argument" + " must be an integer");
        System.exit(1);
    }
}
2
дададзена

<�Код> Працэс пр = rt.exec (новы String [] { "/ бен/ш", "/tmp/test.sh", Арг [0]});

Вядома, вы таксама павінны праверыць, што Арг змяшчае па меншай меры адзін аргумент

2
дададзена

у дзяржаўнай статычнай сілы асноўных (String [] Арг) параметр Арг з'яўляецца arguement. Калі вы выкарыстоўваеце некалькі arguement як

java Classname a b c

Затым у асноўным метадзе Арг будзе масіў, які змяшчае, Ь, з

калі гэта тое, што вы хочаце, то Арг [0] з'яўляецца пераважнай arguement.

0
дададзена

Проста дадайце аргумент (ы) у вашай камандзе, як гэта:

rt.exec("/bin/sh /tmp/test.sh trng-java");
0
дададзена