gpt4 book ai didi

java - Compiler.getTask 编译器错误

转载 作者:行者123 更新时间:2023-12-01 14:34:44 25 4
gpt4 key购买 nike

我正在使用 JavaCompiler 编译此类,如果我传递给编译的 String 是这样的,它会给我一个编译错误:

public class className  extends classNeed{

}

但是如果我删除 public 它就会起作用。我该怎么做才能使其兼容:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

String program = code;
Iterable<? extends JavaFileObject> fileObjects;
fileObjects = getJavaSourceFromString(program);

String[] options = new String[]{"-d", contextClass.getPath()+"temp/"+pathJar+"/",
"-classpath",contextClass.getBasePath()+"WEBINF/lib/lib1.jar;
"+contextClass.getBasePath()+"WEB-INF/lib/lib2.jar"};



compiler.getTask(null, null, null, Arrays.asList(options), null, fileObjects).call();

公开后它仍然有效吗?

编辑:错误string:///code.java:16:类className是公共(public)的,应该在归档的className.java中声明

但是名字是一样的

最佳答案

公共(public)类需要在自己的文件中声明吗?

我认为编译器并不认为输入来自按照语言规范正确命名的 .java 文件。 (公共(public)类必须在自己的文件中定义)。

也许您的路径错误,Java 编译器似乎会根据 Java 文件/声明的包和类名不匹配而拒绝它。

关于java - Compiler.getTask 编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16586448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com