簡體   English   中英

構建有關使用Sun專有API的警告

[英]Build warnings regarding using Sun proprietary API

我正在嘗試清理我的構建環境,並發現了一些關於使用Sun專有API的警告。

[javac] /workspace/<path-to-files>/Handler.java:18: warning: sun.net.www.protocol.http.Handler is Sun proprietary API and may be removed in a future release
[javac] public class Handler extends sun.net.www.protocol.http.Handler {
[javac]                                                       ^
[javac] /workspace/<path-to-files>/HttpClient.java:16: warning: sun.net.www.http.HttpClient is Sun proprietary API and may be removed in a future release 
[javac] public class HttpClient extends sun.net.www.http.HttpClient {
[javac]
[javac] /workspace/<path-to-files>/HttpURLConnection.java:19: warning: sun.net.www.protocol.http.HttpURLConnection is Sun proprietary API and may be removed in a future release
[javac] public class HttpURLConnection extends sun.net.www.protocol.http.HttpURLConnection {
[javac]                                                                 ^

和...

[javac] /workspace/<path-to-files>/JavaFile.java:17: warning: sun.misc.BASE64Decoder is Sun proprietary API and may be removed in a future release
[javac] import sun.misc.BASE64Decoder;
[javac]                ^
[javac] /workspace/<path-to-files>/JavaFile.java:338: warning: sun.misc.BASE64Encoder is Sun proprietary API and may be removed in a future release
[javac]          BASE64Encoder encoder = new BASE64Encoder();
[javac]          ^

任何人都可以建議這些API的替代品嗎? 或者可以用官方Java API替換它們? 我意識到這些只是警告,但這是我打算解決的問題。

目前尚不清楚為什么你首先聲明自己的HttpURLConnectionHandler類 - 你確定要編譯它們嗎?

至於Base64 - 我自己喜歡這個公共領域的實現

如果你已經寫了一個http客戶端,那么你已經重新發明了輪子。 已經在apache http客戶端中有一個非常好的。

如果你想要Base64編碼/解碼,那么在apache commons編解碼器中有一個類。

我不確定為什么你需要在你的代碼中直接使用那些sun.net.www.protocol.http對象,因為它們是由HttpUrlConnection內部使用的。 您可以使用該對象而不是內部對象。 如果該API不能滿足您的需求,那么就有Apache HttpClient

對於base 64編碼,您可以使用Java Mail提供的編碼,如下所示:

final InputStream decoded = MimeUtility.decode(encodedInput, "base64");

Apache commons-codec

對於Base64,從Java 8開始,您可以使用java.util.Base64.getEncoder().encode(Byte[])java.util.Base64.getDecoder().decode(Byte[])

暫無
暫無

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

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