我正在尝试在 Windows 上的注释处理器中打开一个 http 套接字,并得到以下堆栈跟踪:
java.net.SocketException: Unrecognized Windows Sockets error: 10106: create
at java.net.Socket.createImpl(Socket.java:397)
at java.net.Socket.connect(Socket.java:527)
at java.net.Socket.connect(Socket.java:478)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
...
我稍微调查了一下这个错误,似乎可能是因为注释处理器(通过 javac 运行)无法访问环境变量,例如 SystemRoot。我通过从我的注释处理器调用来测试System.getenv("SystemRoot")
它,它返回 null。在正常代码中,它C:\Windows
按预期返回。
有没有办法将环境变量传递给javac?甚至以编程方式设置它们,尽管我怀疑这是邪恶的。