簡體   English   中英

Java編譯器API NullPointerException

[英]Java Compiler API NullPointerException

我正在使用此代碼在運行時編譯Java文件。 首先,這是我的目錄樹(在Eclipse中)。

+---- src
+----- package
+------ Compile.java
+
+
+---- temp
+----- anotherpackage
+------ Temp.java (file to compile)

這是我得到NullPointerException的代碼(我已經嘗試將JDK作為Eclipse中的標准VM)。

public static void compile(URI path, InputStream is, OutputStream os, OutputStream err) throws IOException {
    SimpleJavaFileObject source = new CustomJavaFileObject(path, Kind.SOURCE);
    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
    JavaCompiler.CompilationTask task = compiler.getTask(new PrintWriter(err), null, null, null, null, Arrays.asList(source));
    task.call();
}

這是CustonJavaFileObject:

class CustomJavaFileObject extends SimpleJavaFileObject {
    protected CustomJavaFileObject(URI uri, Kind kind) {
        super(uri, kind);
    }
}

我究竟做錯了什么?

編輯:

我的PATH中沒有JDK(並且無法添加它)

這是我的堆棧跟蹤:

java.lang.NullPointerException 
  at package.Compiler.compile(Compiler.java:20)
  at package.Interactive.main(Interactive.java:19)
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 

導致問題。 與jdk不同,將您的JRE指向JDK內部,jre不提供任何工具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM