当前位置: 技术问答>java相关
简单的问题!
来源: 互联网 发布时间:2015-01-01
本文导语: 我在看《THINKING IN JAVA》的中文版,其中的第一个例子程序运行不了。 源程序如下: import java.util.*; public class Property { public static void main(String[] args) { System.out.println(new Date()); Properties p =...
我在看《THINKING IN JAVA》的中文版,其中的第一个例子程序运行不了。
源程序如下:
import java.util.*;
public class Property {
public static void main(String[] args) {
System.out.println(new Date());
Properties p = System.getProperties();
p.list(System.out);
System.out.println("--- Memory Usage:");
Runtime rt = Runtime.getRuntime();
System.out.println("Total Memory = "
+ rt.totalMemory()
+ " Free Memory = "
+ rt.freeMemory());
}
}
在程序的当前目录下:
javac Property.java
没有报任何错误。
但java Property 后
出现 Exception in thread "main" java.lang.NoClassDefFoundError: Property
我的CLASSPATH 的设置为:CLASSPATH=.;$JAVA_HOMElibdt.jar;$JAVA_HOMElibtools.jar
这是怎么回事呀?
谁帮帮忙?
源程序如下:
import java.util.*;
public class Property {
public static void main(String[] args) {
System.out.println(new Date());
Properties p = System.getProperties();
p.list(System.out);
System.out.println("--- Memory Usage:");
Runtime rt = Runtime.getRuntime();
System.out.println("Total Memory = "
+ rt.totalMemory()
+ " Free Memory = "
+ rt.freeMemory());
}
}
在程序的当前目录下:
javac Property.java
没有报任何错误。
但java Property 后
出现 Exception in thread "main" java.lang.NoClassDefFoundError: Property
我的CLASSPATH 的设置为:CLASSPATH=.;$JAVA_HOMElibdt.jar;$JAVA_HOMElibtools.jar
这是怎么回事呀?
谁帮帮忙?
|
Process myProcess = Runtime.getRuntime().exec ("D:\jdk1.3\bin\javac d:\abc.java");
这段程序如果产生异常,是由主线程捕获到呢?还是由新建的进程myProcess捕获呢?
我认为因该由myProcess来捕获,但是它始终不活不到,
现在我总于相通了,那是因为你的那个进程根本就没生成!所以他自然就捕获不到异常啦!
Runtime.getRuntime().exec (参数1,参数2);也就是说只有这个进程建立,他才能捕获
自己的异常,那他什么时候才建立呢。我试了一下,自有当参数一,也就是你要运行的命令
能正常的运行,这样你的进程就建立起来了。如果参数二出错,也就是参数一运行的参数出错
那么,这个进程就可以捕获到异常了!
你可以试试下面的程序看看!
import java.io.*;
public class Pnotepad
{
public static void main(String args[])
{
try
{
String s;
Process myProcess = null;
myProcess = Runtime.getRuntime().exec ("javac wxyxl.java"); //wxyxl.java这个文件名可以随便取,但是必须的是实际不存在的 ,因为你要捕获异常!
BufferedReader in = new BufferedReader(new
InputStreamReader(myProcess.getErrorStream()));
while ((s = in.readLine()) != null)
{
System.out.println("这是进程myProcess捕获到的异常:"+s);
}
}catch(Exception e){System.out.println("这是主线程捕获到的异常");}
}
}
你试试看吧!我已经成功了!
如不行,我们再讨论!
这段程序如果产生异常,是由主线程捕获到呢?还是由新建的进程myProcess捕获呢?
我认为因该由myProcess来捕获,但是它始终不活不到,
现在我总于相通了,那是因为你的那个进程根本就没生成!所以他自然就捕获不到异常啦!
Runtime.getRuntime().exec (参数1,参数2);也就是说只有这个进程建立,他才能捕获
自己的异常,那他什么时候才建立呢。我试了一下,自有当参数一,也就是你要运行的命令
能正常的运行,这样你的进程就建立起来了。如果参数二出错,也就是参数一运行的参数出错
那么,这个进程就可以捕获到异常了!
你可以试试下面的程序看看!
import java.io.*;
public class Pnotepad
{
public static void main(String args[])
{
try
{
String s;
Process myProcess = null;
myProcess = Runtime.getRuntime().exec ("javac wxyxl.java"); //wxyxl.java这个文件名可以随便取,但是必须的是实际不存在的 ,因为你要捕获异常!
BufferedReader in = new BufferedReader(new
InputStreamReader(myProcess.getErrorStream()));
while ((s = in.readLine()) != null)
{
System.out.println("这是进程myProcess捕获到的异常:"+s);
}
}catch(Exception e){System.out.println("这是主线程捕获到的异常");}
}
}
你试试看吧!我已经成功了!
如不行,我们再讨论!
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。