萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 554|回复: 0

1-1-9-1-4 哪位大侠帮忙看看~

[复制链接]
发表于 2003-2-6 22:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x

  1. 发信人: rehte (Ava), 信区: Java      
  2. 标  题: Re: 哪位大侠帮忙看看~
  3. 发信站: BBS 水木清华站 (Mon Nov 18 14:48:26 2002), 转信

  4. 我已经试过了,问题出在ComplingClassLoader的compile函数中的
  5. Runtime.getRuntime().exec("javac "+javaFile);一句。
  6. 由于这样运行javac命令是不带任何环境参数的,包括path和classpath
  7. ,因此你在系统环境中设置的path,classpath全部不起作用了。因此
  8. 着个代码运行的结果是
  9. 'javac' 不是内部或外部命令,也不是可运行的程序或批处理文件。
  10. 你的程序运行时没有报这个错误是因为exec不给被执行程序输出控制
  11. 台(output console),因此实际上exec执行失败,class文件并没有生成,
  12. 它的返回值ret=1,因此也就会ClassNotFoundException
  13. 解决办法
  14. 1.使用exec(String []cmdarray,String[]envp)将环境参数path,classpath
  15. 通过envp传入。
  16. 或者
  17. 2.使用sun.tools.javac.Main类编译java源文件,sun.tools.javac.Main属于
  18. 核心包的实现库(基础库),可以,import进后同核心类一样使用。
  19. 下面是一个例子(摘自tomcat源代码)
  20.     public boolean compile(String source) {
  21.         Main compiler = new Main(out, "jsp->javac");
  22.         String[] args = new String[]
  23.         {
  24.             "-encoding", encoding,
  25.             "-classpath", classpath,
  26.             "-d", outdir,
  27.             source
  28.         };
  29.         return compiler.compile(args);
  30.     }


  31. 【 在 marlborowang (Marlboro) 的大作中提到: 】
  32. : import java.io.*;
  33. : public class CompilingClassLoader extends ClassLoader
  34. : {
  35. :   private byte[] getBytes( String filename ) throws IOException
  36. :   {
  37. :         System.out.println( "begin to load the getBytes method~~~~" );
  38. :     File file = new File( filename );
  39. :     long len = file.length();
  40. :         System.out.println("file = "+file);
  41. :         System.out.println("len = "+len);
  42. :     byte raw[] = new byte[(int)len];
  43. : ...................

复制代码
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网 |网站地图

GMT+2, 2024-5-22 00:51 , Processed in 0.296887 second(s), 18 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表