Java Runtime.exec();

Salam. Menim bir dene run clasım var , onu istifafde ederek mən aPlusB.java faylını öncə compile elemək və sonra input olaraq iki rəqəm verib output – u check elemek istiyirəm. Aşağıda run classının kodu var

1import java.io.*;
2 
3public class run {
4 
5    public static void main(String args[]) {
6 
7        String s = null;
8        String command[] = new String[3];
9        command[0] = "javac aPlusB.java";
10        command[1] = "java aPlusB";
11        command[2] = "1 2";        
12         
13        try {
14            Process p = Runtime.getRuntime().exec(command);
15           
16             
17            BufferedReader stdInput = new BufferedReader(new
18                 InputStreamReader(p.getInputStream()));
19 
20            BufferedReader stdError = new BufferedReader(new
21                 InputStreamReader(p.getErrorStream()));
22 
23            // read the output from the command
24            System.out.println("Here is the standard output of the command:\n");
25            while ((s = stdInput.readLine()) != null) {
26                System.out.println(s);
27            }
28             
29            // read any errors from the attempted command
30            System.out.println("Here is the standard error of the command (if any):\n");
31            while ((s = stdError.readLine()) != null) {
32                System.out.println(s);
33            }
34             
35            System.exit(0);
36        }
37        catch (IOException e) {
38            System.out.println("exception happened - here's what I know: ");
39            e.printStackTrace();
40            System.exit(-1);
41        }
42    }
43}

Sadəcə olaraq run eliyəndə Exception verir. Problemi necə həll elemık olar ?


Yadda saxlama
Kateqoriya: Java . . Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (7 cavab var)

(11:17, 14/05/2011 ) #2499

Exception-ın nə olduğunu yaza bilərsinizmi? Nə xəta verir?

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(13:56, 14/05/2011 ) #2500

Problem ona görədir ki, Runtime.getRuntime().exec() metodu yalnız 1 comand qəbul edə bilir, sizdə isə 2 dənədi “javac” və “java”. Eyni zamanda array olmadan da etmək olar.
run classınızı bu şəkildə yaza bilərsiniz:

1import java.io.*;
2 
3public class run {
4 
5    public static void main(String args[]) {
6        String command = "javac aPlusB.java";
7        runCommand(command);
8 
9        command = "java aPlusB 1 2";
10        runCommand(command);
11 
12    }
13 
14    public static void runCommand(String command) {
15        String s = null;
16        try {
17            Process p = Runtime.getRuntime().exec(command);
18            BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
19            BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
20 
21            // read the output from the command
22            System.out.println("Here is the standard output of the command:\n");
23            while ((s = stdInput.readLine()) != null) {
24                System.out.println(s);
25            }
26 
27            // read any errors from the attempted command
28            System.out.println("Here is the standard error of the command (if any):\n");
29            while ((s = stdError.readLine()) != null) {
30                System.out.println(s);
31            }
32            //System.exit(0);
33        } catch (IOException e) {
34            System.out.println("exception happened - here's what I know: ");
35            e.printStackTrace();
36            System.exit(-1);
37        }
38    }
39}
Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(16:27, 14/05/2011 ) #2502

Cavabınıza görə təşəkkürlər . Ancaq yenede çalışmadı , daha doğrusu compile oldu ancaq “java aPlusB 1 2” hissəsi çalışmadı . Bir də ki, mən səhv etmirəmsə “java aPlusB 1 2” runCommand -a göndərəndə 1 və 2 argument kimi verilir aPlusB klasına. Ancaq mənim aPlusB.java klasım a və b integerlərini input kimi qəbul etməlidi.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(09:19, 16/05/2011 ) #2509

Main metoduna göndərilən arqumentlər “String[] args” massiv kimi göndərilir. Siz öz proqramınızda a və b-nı aşağıdakı kimi integerə çevirin.

a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[1]);

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(13:59, 16/05/2011 ) #2513

Burada məqsəd a+b -ni test etmek deyil. Programlama olimpiadalarında məsələnin şərti verilir, və həmin şərtə əsasən iştirakçılar istənilən programlama dilində program yazıb göndərirlər testing üçün. İndi təsəvvür edin ki, məsələnin şərti deyir ki, a və b ədədləri giriləcək , siz de onların cəmini cıxaracaq java dilində program yazın. təbii ki, kodlar bu formada olacaq:

1public class APlusB
2{
3public static void main( String args[] )
4{
5Scanner sc =  new Scanner(System.in);
6int a = sc.nextInt();
7int b = sc.nextInt();
8 
9System.out.println(a+b);
10 
11}
12}

Əsas məqsəd bu tipli programı test etmekdi.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(14:06, 16/05/2011 ) #2514

public class APlusB
{
public static void main( String args[] )
{
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();

System.out.println(a+b);

}
}

Əsas məqsəd bu tipli programı test etmekdi.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(18:04, 16/05/2011 ) #2517

Bu proqramda a və b-ni input-dan oxuduğunuza görə onları əsas proqramdan İnputStream ilə göndərmək lazımdır. Vaxt olanda nümunə kod yazıb göstərərəm.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Bu suala aid öz sualım var:
Sual verin
Bu suala cavab vermək istəyirəm:
Cavab verin

Cavab verin


Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.

Üzvlər üçün giriş

Qeydiyyat

Elan qutusu

Son cavablar və şərhlər

cavaninsan cavab verdi - Amerika səhmləri (8 gün əvvəl)

Software Developer cavab verdi - Amerika səhmləri (8 gün əvvəl)

SN cavab verdi - Kripto vergi (17 gün əvvəl)

Nicat97 cavab verdi - ilkaddimlar.com-a nə oldu? (24 gün əvvəl)

nicatmemmedli cavab verdi - Proqramlaşdırma - fəlsəfə (27 gün əvvəl)

nicatmemmedli cavab verdi - ilkaddimlar.com-a nə oldu? (27 gün əvvəl)

Software Developer cavab verdi - ilkaddimlar.com-a nə oldu? (38 gün əvvəl)

E. Hacı cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (47 gün əvvəl)

Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (48 gün əvvəl)

E. Hacı cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (49 gün əvvəl)

Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (49 gün əvvəl)

E. Hacı cavab verdi - Telefon almışam kamerasında ləkə var qaytarmaq istəyirəm, mağaza qaytarmır (49 gün əvvəl)

Software Developer cavab verdi - Rus dili yatırımı (49 gün əvvəl)

Cənab cavab verdi - Rus dili yatırımı (50 gün əvvəl)

Software Developer cavab verdi - Rus dili yatırımı (50 gün əvvəl)

Software Developer - 615 xal

E. Hacı - 608 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 434 xal

Maqa - 346 xal

Ruslan Butdayev - 328 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

Sistemə daxil olmuş 23309 sualdan 92%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

E-Haci.net istehsalı. © 2010-2025