1

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に渡す方法はありますか?または、プログラムで設定することもできますが、それは悪いことだと思います。

4

1 に答える 1

0

Java ツールセットは、Java のランタイムに含まれるようになりました。を使用して Java 変数を設定する場合-Dは、独自のアプリケーションからツールを呼び出すだけです。-Dmy.variable="hello world"その後、javaの代わりに に渡すことができますjavac

于 2014-04-02T09:00:29.697 に答える