java程序怎么线性执行

Python012

java程序怎么线性执行,第1张

使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序。

1. exec(String command)

2. exec(String command, String envp[], File dir)

3. exec(String cmd, String envp[])

4. exec(String cmdarray[])

5. exec(String cmdarray[], String envp[])

6. exec(String cmdarray[], String envp[], File dir)

一般的应用程序可以直接使用第一版本,当有环境变量传递的时候使用后面的版本。其中2和6版本可以传递一个目录,标识当前目录,因为有些程序是使用相对目录的,所以就要使用这个版本。

实例:

Process process = Runtime.getRuntime().exec(".\\p.exe")

process.waitfor()

在上面的程序中,第一行的“.\\p.exe”是要执行的程序名,Runtime.getRuntime()返回当前应用程序的Runtime对象,该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序,并返回与该子进程对应的Process对象实例。通过Process可以控制该子进程的执行或获取该子进程的信息。第二条语句的目的等待子进程完成再往下执行。

import java.util.Scanner

import java.util.Arrays

public class P

{

public static void main(String[] args)

{

Scanner sc=new Scanner(System.in)

float[] A=new float[1],B=new float[1]

int alen=0,blen=0,i,j,k

String line

System.out.println("请输入线性表A的各元素,每行一个(输入#结束):")

while(true)

{

line=sc.nextLine()

if(line.equals("#"))

break

A=Arrays.copyOf(A,++alen)

A[alen-1]=Float.parseFloat(line)

}

System.out.println("请输入线性表B的各元素,每行一个(输入#结束):")

while(true)

{

line=sc.nextLine()

if(line.equals("#"))

break

B=Arrays.copyOf(B,++blen)

B[blen-1]=Float.parseFloat(line)

}

Arrays.sort(A)

Arrays.sort(B)

System.out.println("升序排序后,线性表A的各元素是:")

for(i=0i<aleni++)

{

System.out.print(A[i]+" ")

}

System.out.println()

System.out.println()

System.out.println("升序排序后,线性表B的各元素是:")

for(i=0i<bleni++)

{

System.out.print(B[i]+" ")

}

System.out.println()

System.out.println()

A=Arrays.copyOf(A,alen+blen)

for(i=0i<bleni++)

{

if(B[i]>=A[alen-1])

A[alen++]=B[i]

else

{

for(j=0j<alen-1j++)

{

if(B[i]<=A[j])

break

}

for(k=alen-1k>=jk--)

{

A[k+1]=A[k]

}

A[j]=B[i]

alen++

}

}

System.out.println("线性表B按顺序插入线性表A中后,线性表A的各元素是:")

for(i=0i<aleni++)

{

System.out.print(A[i]+" ")

}

sc.close()

}

}