永发信息网

Main.compile(args);动态加载java代码、、却找不到类,,

答案:2  悬赏:20  手机版
解决时间 2021-03-21 19:50
环境变量和文件扩展名都没问题,路径配置也没问题,,到底怎么回事啊。。。下面是代码
String classpath = this.getClass().getResource("").getPath();
File file;
// 创建文件路径
file = new File(classpath.substring(1, classpath.length() - 13) + "\\"
+ testName + ".java");
// 当虚拟机退出时,删除此临时java源文件
file.deleteOnExit();
// 获取文件路径名
String fileName = file.getName();
String className = getClassName(fileName);
// 创建输出流对象
FileOutputStream fout = new FileOutputStream(file);
byte b[] = classInfo.getBytes();
// 写入数据
fout.write(b);
// 关闭流
fout.flush();
fout.close();
// 创建JDK中对应编译类
//com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();
String args[] = { "-d",
classpath.substring(1, classpath.length() - 13), fileName };
System.out.println(file);
System.out.println(classpath.substring(1, classpath.length() - 13)+"\\"+testName+".java");
// 调用方法对所属程序进行编译
int status = Main.compile(args);
System.out.println(status);
最佳答案
报错了还是什么?
全部回答
第一个:args[]是参数数组。main函数都会有这个参数,意思是当你从控制台输入数据的时候,就通过这个args参数来获取。如果你输入一个值,那么args的长度就是1.如果希望长度超过1,那在控制台输入的时候就输入多个值,用空格隔开。 第二个:意思是:如果参数数组的长度是大于0的(也就是说有输入)就把第一个参数赋值给host对象。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我的联想笔记本老是嘀嘀的乱叫
煤层气热值是多少大卡,煤层气的发热量数值是
济南三星售后维修服务中心在槐荫区有没有?谢
用排水发法收集人体呼出的气体,如何知道收集
蚯蚓等环节动物共同具有的特征是A.身体由许多
广州铁路(集团)公司电脑联网火车票代售点地址
儿科医生科室鉴定评语,对别人工作的评价用语
安发产品能在20多个国家销售,并且获得认可,
我的护士资格证首次注册是13年3月,现在是18
83版西游记六耳猕猴的扮演者
单选题观察下列各式71=7,72=49,73=343,74=
店铺转让公告怎么写,店面转让收条怎么写?
请问有没有本科生大三就去顶岗实习了的?我们
好听的名字男孩,姓陆的,单名
蚕山地址在什么地方,想过去办事
推荐资讯
高考古代诗歌鉴赏题,寻求高考诗歌鉴赏题目 及
阿甘正传是真实故事吗,阿甘正传是真实的故事
LAMY这个地址在什么地方,我要处理点事
我家花仓为什么养了快两个月还咬人
需求是指人类想得到某些具体产品的愿望。对吗
看到老公时有点烦,不见时有点想,这是怎么了
醉梦仙霖之逆天狂人的歌词
初中常考歇后语,初中谚语
央视拍的四大名著分别是在什么时候拍摄的?
求一部小说,男主角所在的部落是人族一个分支
一支篮球队有几人组成?
圣教军增痛宝石和至简之力哪个好一点
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?