当前位置: 技术问答>java相关
请问下面的java语段可行吗
来源: 互联网 发布时间:2015-05-22
本文导语: 我编写了两个类 一个是Test1.java和Test2.java //Test1.java public class Test1 { public static void main(String args[]) { System.out.println("i love you"); } } 我先把上面这个类文件编译成Test1.class,然后编...
我编写了两个类
一个是Test1.java和Test2.java
//Test1.java
public class Test1
{
public static void main(String args[])
{
System.out.println("i love you");
}
}
我先把上面这个类文件编译成Test1.class,然后编写下面的程序,来调用外部exe文件 java.exe 来试图解释这个Test1.clas。
//Test2.java
public class Test1
{
public static void main(String args[])
{
try{
String cmdstr = {"D:\java\bin\java.exe", "D:\java\bin\Test1.class"};
Runtime.getRuntime().exec(cmdstr);
}
catch(IOException e)
{
System.out.println("found exception");
}
}
}
请问这样可行吗?如果可行的话,怎么在Test2.java中获得 Test1.java打印结果"I love u"?
感谢各位。
一个是Test1.java和Test2.java
//Test1.java
public class Test1
{
public static void main(String args[])
{
System.out.println("i love you");
}
}
我先把上面这个类文件编译成Test1.class,然后编写下面的程序,来调用外部exe文件 java.exe 来试图解释这个Test1.clas。
//Test2.java
public class Test1
{
public static void main(String args[])
{
try{
String cmdstr = {"D:\java\bin\java.exe", "D:\java\bin\Test1.class"};
Runtime.getRuntime().exec(cmdstr);
}
catch(IOException e)
{
System.out.println("found exception");
}
}
}
请问这样可行吗?如果可行的话,怎么在Test2.java中获得 Test1.java打印结果"I love u"?
感谢各位。
|
不可行,首先,你的Test2.java和它的类名就不一致
|
将两个类文件放在同一目录下,我已经试过了, 肯定可以。
import java.io.*;
//Test2.java
public class Test2
{
public static void main(String args[])
{
try{
String[] cmdstr = {"java", "Test1"};
Process p = Runtime.getRuntime().exec(cmdstr);
InputStream in = p.getInputStream();
BufferedReader line = new BufferedReader(new InputStreamReader(in));
String l = line.readLine();
while (l!=null)
{
System.out.println(l);
l = line.readLine();
}
in.close();
//p.waitFor();
}
catch(Exception e)
{
System.out.println("found exception");
}
}
}
import java.io.*;
//Test2.java
public class Test2
{
public static void main(String args[])
{
try{
String[] cmdstr = {"java", "Test1"};
Process p = Runtime.getRuntime().exec(cmdstr);
InputStream in = p.getInputStream();
BufferedReader line = new BufferedReader(new InputStreamReader(in));
String l = line.readLine();
while (l!=null)
{
System.out.println(l);
l = line.readLine();
}
in.close();
//p.waitFor();
}
catch(Exception e)
{
System.out.println("found exception");
}
}
}