xijunhu1982
2010-04-29 17:00一个对java代码进行编译执行的问题
[code="java"]
StandardJavaFileManager fileManager = compiler
.getStandardFileManager(diagnostics, null, null);
DiagnosticCollector diagnostics = new DiagnosticCollector();
String path1 = request.getSession().getServletContext().getRealPath("/");
// 对应的问题行
Iterable options = Arrays.asList("-encoding", "UTF-8",
"-d", path1 + "/WEB-INF/classes", "-cp", path1
+ "/WEB-INF/classes");
String[] sd = new String[1];
sd[0] = path1 + "/WEB-INF/classes/com/msproject/servlets/Model"
+ randow + ".java";
Iterable<? extends JavaFileObject> compilationUnits = fileManager
.getJavaFileObjectsFromStrings(Arrays.asList(sd));
//获得编译任务
JavaCompiler.CompilationTask task = compiler.getTask(null,
fileManager, diagnostics, options, null,
compilationUnits);
//执行
boolean success = task.call();
[/code]
上面"-cp"对应的路径是class下了类,如果现在要在编译的程序里面导入一个jar包,就要制定这个jar包的名(比如:path1 + "/WEB-INF/classes/sa.jar"),现在我既要导入class下面的类,也要导入sa.jar里面的类,怎么办?
我有一个方法是解压jar包,放到class下面,但是那样会导致有好多类,有没有其他方法,谢谢!
- 点赞
- 回答
- 收藏
- 复制链接分享
1条回答
为你推荐
- java怎么对泛型指定的类执行反射操作
- it技术
- 互联网问答
- IT行业问题
- 计算机技术
- 编程语言问答
- 0个回答
- think in java中一段代码的疑惑,关于switch
- it技术
- 互联网问答
- IT行业问题
- 计算机技术
- 编程语言问答
- 0个回答
- 从main函数进入执行编译java代码的方法与从servelet进入执行编译java代码的方法的区别
- it技术
- 互联网问答
- IT行业问题
- 计算机技术
- 编程语言问答
- 0个回答
- 为什么允许在注释中使用某些 Unicode 字符来执行 Java 代码?
- comments
- java
- unicode
- 0个回答
- 急!在线等。使用maven把项目打成war包,java文件没有被包含进去!!!!
- spring
- maven
- java
- 编码
- 4个回答