public boolean makeJavaFile()
{
try {
Runtime rt = Runtime.getRuntime();
Process ps = rt.exec("cmd /c javac test\\Main.java");
ps.waitFor();
ps = rt.exec("cmd /c java test\\Main");
return true;
}
catch (Exception e) {
return false;
}
在当前目录有一个test文件夹,在test文件夹里面有一个Main.java,在调用这个函数的时候来编译和运行它,但是没有反应,连生成Main.class文件都不行啊。有什么办法呢??
{
try {
Runtime rt = Runtime.getRuntime();
Process ps = rt.exec("cmd /c javac test\\Main.java");
ps.waitFor();
ps = rt.exec("cmd /c java test\\Main");
return true;
}
catch (Exception e) {
return false;
}
在当前目录有一个test文件夹,在test文件夹里面有一个Main.java,在调用这个函数的时候来编译和运行它,但是没有反应,连生成Main.class文件都不行啊。有什么办法呢??
public static void main(String args[]){
try{
Runtime rt = Runtime.getRuntime();
String srcFile ="C:/Test/HelloWorld.java";
String command = "javac ";
rt.exec(command+srcFile);
System.out.println("Compile File Success!");
}catch(Exception e){
e.printStackTrace();
}
}
}
这是用外部命令来运行java程序和运行word,excel没什么区别
把jdk/bin目录加到系统的path中即可
你要先编译("javac test\\Main.java");,再执行("java test\\Main.java");,
java,当前目录只能是没有package的目录,比如类A有package a,那么只能在a上一级目录进行java a/A,在a目录下java A是不行的
public static void main(String args[]){
try{
Runtime rt = Runtime.getRuntime();
rt.exec("javac "+args[0]);
String ajava = args[0].substring(0,args[0].indexOf("."));
rt.exec("java "+ajava);
System.out.println("Compile File Success!");
}catch(Exception e){
e.printStackTrace();
}
}
}不过执行java命令时没有反应。。不知怎么回事望高手指点下~~
(believefym的方法我没有去试。。原因:想不出好的代码实现)
-------------------
楼主怎么会有这样的需求呢?
目录代表package,打包的时候顺便把package也打进去很正常啊不过执行java命令时没有反应。。不知怎么回事
-------------------
javac之后,Thread.sleep(someSeconds)
编译没那么快生成class,当你后面的代码执行java的时候class还没生成
public static void main(String args[]){
try{
Runtime rt = Runtime.getRuntime();
rt.exec("javac "+args[0]);
String ajava = args[0].substring(0,args[0].indexOf("."));
Thread.sleep(8000);
rt.exec("java "+ajava);
System.out.println("Compile File Success!");
}catch(Exception e){
e.printStackTrace();
}
}
}
Hello.javapublic class Hello{
public static void main(String args[]){
System.out.println("Hello World!");
}
}两个文件在同一package下
----------------
同一package跟同一目录不是一回事,看你的代码应该事同一目录吧