1

运行此代码以编译此目录中的 .java 文件时:

String title = txtName.getText();
        String name = title + ".Java";
        String src = Minecraft.getMinecraft().mcDataDir.getParent().toString() + "/saves/" + world.getWorldInfo().getWorldName().toString() + "/TechRev/Compiler/";
        compile(src + name);

使用这种方法:

public void compile(String file) {
    String fileToCompile = file;
    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
    int compilationResult = compiler.run(null, null, null, fileToCompile);
    if (compilationResult == 0) {
        System.out.println("Compilation is successful");
    } else {
        System.out.println("Compilation Failed");
    }
}

我在 Eclipse Juno(Java 6) 的控制台中收到此错误:

2013-10-02 20:47:47 [INFO] [STDERR] javac: invalid flag: /Users/marko5049/Desktop/Modding/forge/mcp/jars/saves/TechRev/TechRev/Compiler/TechRev.Java
2013-10-02 20:47:47 [INFO] [STDERR] Usage: javac <options> <source files>
2013-10-02 20:47:47 [INFO] [STDERR] use -help for a list of possible options
2013-10-02 20:47:47 [INFO] [STDOUT] Compilation Failed

请有人向我解释为什么会发生这种情况并告诉我如何解决这个问题?谢谢!

-问候马克

4

2 回答 2

6

您的文件名以.Java- 结尾,应该是.java. 否则编译器不希望它是一个源文件,而是尝试将它作为一个标志来处理。

于 2013-10-02T10:58:46.923 回答
1

.java不是 .Java

String name = title + ".Java";

将其更改为

`String name = title + ".java"`;
于 2013-10-02T11:01:47.913 回答