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

import java.io.*;

public class run {

    public static void main(String args[]) {

        String s = null;
        String command[] = new String[3];
        command[0] = "javac aPlusB.java";
        command[1] = "java aPlusB";
        command[2] = "1 2";        	
        
        try {
            Process p = Runtime.getRuntime().exec(command);
          
            
            BufferedReader stdInput = new BufferedReader(new 
                 InputStreamReader(p.getInputStream()));

            BufferedReader stdError = new BufferedReader(new 
                 InputStreamReader(p.getErrorStream()));

            // read the output from the command
            System.out.println("Here is the standard output of the command:\n");
            while ((s = stdInput.readLine()) != null) {
                System.out.println(s);
            }
            
            // read any errors from the attempted command
            System.out.println("Here is the standard error of the command (if any):\n");
            while ((s = stdError.readLine()) != null) {
                System.out.println(s);
            }
            
            System.exit(0);
        }
        catch (IOException e) {
            System.out.println("exception happened - here's what I know: ");
            e.printStackTrace();
            System.exit(-1);
        }
    }
}

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:

import java.io.*;

public class run {

    public static void main(String args[]) {
        String command = "javac aPlusB.java";
        runCommand(command);

        command = "java aPlusB 1 2";
        runCommand(command);

    }

    public static void runCommand(String command) {
        String s = null;
        try {
            Process p = Runtime.getRuntime().exec(command);
            BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
            BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));

            // read the output from the command
            System.out.println("Here is the standard output of the command:\n");
            while ((s = stdInput.readLine()) != null) {
                System.out.println(s);
            }

            // read any errors from the attempted command
            System.out.println("Here is the standard error of the command (if any):\n");
            while ((s = stdError.readLine()) != null) {
                System.out.println(s);
            }
            //System.exit(0);
        } catch (IOException e) {
            System.out.println("exception happened - here's what I know: ");
            e.printStackTrace();
            System.exit(-1);
        }
    }
}
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:

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

(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

E. Hacı cavab verdi - Xif mn kodu (6 gün əvvəl)

Khagrov cavab verdi - Axtardığım mahnını tapa bilmirəm kömək edin (25 gün əvvəl)

E. Hacı cavab verdi - Dünəndən Kompüterlə Twitter/X və Pinterest -ə girə bilmirəm. (32 gün əvvəl)

orkhanrza cavab verdi - AZ9095də bağlama qalıb (37 gün əvvəl)

Ismayil1997 cavab verdi - İndiki dövrdə İngilis dili müəllimliyi ixtisasını seçməyə dəyər? (46 gün əvvəl)

revan orucov cavab verdi - Bakıda evə 100mbps+ internet verən provayder var? (50 gün əvvəl)

E. Hacı cavab verdi - WordPress sistemli saytda Facebook və İnstagram platformalarına özəl target_blank tənzimlənməsi haqqında... (51 gün əvvəl)

Jurnalist cavab verdi - WordPress sistemli saytda Facebook və İnstagram platformalarına özəl target_blank tənzimlənməsi haqqında... (52 gün əvvəl)

asssa1 cavab verdi - Riyazi proqramlar üçün proqram (53 gün əvvəl)

Aleks cavab verdi - İndiki dövrdə İngilis dili müəllimliyi ixtisasını seçməyə dəyər? (60 gün əvvəl)

E. Hacı cavab verdi - İndiki dövrdə İngilis dili müəllimliyi ixtisasını seçməyə dəyər? (60 gün əvvəl)

Software Developer cavab verdi - Patreon , Ko-fi , Buy Me A Coffee , Kickstarter kimi saytlardan gələn pula görə vergi tutulur? (60 gün əvvəl)

E. Hacı cavab verdi - Riyazi proqramlar üçün proqram (61 gün əvvəl)

Software Developer cavab verdi - Kursda xaricdə təhsil imkanı nece yaranır? (61 gün əvvəl)

darkpixel cavab verdi - Patreon , Ko-fi , Buy Me A Coffee , Kickstarter kimi saytlardan gələn pula görə vergi tutulur? (61 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ş 23287 sualdan 92%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

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