【发布时间】:2012-10-25 12:36:29
【问题描述】:
我正在尝试在 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?甚至以编程方式设置它们,尽管我怀疑这是邪恶的。
【问题讨论】:
-
您可以在命令行中使用 -D 标志来覆盖系统属性。但我怀疑这不是您要寻找的答案...
-
@durron597 不幸的是,它不适用于 Javac。
标签: java annotations websocket environment-variables javac