java.lang.NoSuchMethodError: main
Exception in thread "main"
---------------------------------代码如下
- Java code
import java.io.*; public class Util extends Object { public static int RunThis(String args) { Runtime rt = Runtime.getRuntime(); int rc = -1; try { Process p = rt.exec(args); int bufSize = 4096; BufferedInputStream bis = new BufferedInputStream(p.getInputStream(), bufSize); int len; byte buffer[] = new byte[bufSize]; while ((len = bis.read(buffer, 0, bufSize)) != -1) System.out.write(buffer, 0, len); rc = p.waitFor(); } catch (Exception e) { e.printStackTrace(); rc = -1; } finally { return rc ; } } }
------解决方案--------------------
没有main函数,运行需要main 函数
------解决方案--------------------
内容太少,不知道具体哪里错了!多贴些东西出来!
------解决方案--------------------
java.lang.NoSuchMethodError: main
Exception in thread "main"
没有main函数
直接运行
main函数是程序的入口
------解决方案--------------------
是什么程序啊?调试了~不知道你要输入些什么东西啊?
------解决方案--------------------
Util , 看名字感觉这不像是程序的入口,LZ应该把用Util 的类贴上来呀。
------解决方案--------------------
据我夜观天象,楼主贴的类实现如下功能:调用一个可执行程序,捕捉该程序的标准输出并用System.out显示出来直到该程序结束
但是楼主试图运行这个类的时候,类文件里面没有提供main入口函数,所以报了java.lang.NoSuchMethodError: main
Exception in thread "main"
原因大家都知道,运行一个Java类文件,需要该类文件提供public static void main(String [] args)的入口函数
其实程序本身没有问题,但是这段代码只是一个工具类,还需要另外一个类来调用RunThis这个静态函数,为了简单起见,我把入口函数直接写到Util类文件里,获得的代码如下
import java.io.*;
public class Util extends Object {
public static void main(String [] args) {
if (args.length >= 1) {
int r = Util.RunThis(args[0]);
System.out.println("Command executed, return code = " + r);
} else {
System.out.println("Usage: java Util <command1> <command2> ... <commandN>");
}
}
public static int RunThis(String args) {
Runtime rt = Runtime.getRuntime();
int rc = -1;
try {
Process p = rt.exec(args);
int bufSize = 4096;
BufferedInputStream bis = new BufferedInputStream(p
.getInputStream(), bufSize);
int len;
byte buffer[] = new byte[bufSize];
while ((len = bis.read(buffer, 0, bufSize)) != -1)
System.out.write(buffer, 0, len);
rc = p.waitFor();
} catch (Exception e) {
e.printStackTrace();
rc = -1;
}
return rc;
}
}
然后随便写一个批处理文件比如1.bat,在命令行执行:java Util 1.bat
运行成功
------解决方案--------------------
是啊
本来是没有问题的啊
但是LZ是在编译的时候没有问题
运行时就有这个异常的
这个类本来就不是来运行的
而是一个javavbean
被其他的类 方法来调用的
LZ不需要去运行这个程序
编译就可以了
------解决方案--------------------
没有MAIN函数.....
可以按照9楼的去做把
------解决方案--------------------
没有MAIN函数
------解决方案--------------------