2016-04-28 6 views
10

पर त्रुटि मैं संकलन सरल अवरुद्ध HttpRequest JavaDoc से उदाहरण मिलता है एक समस्या है:"पैकेज java.net.http मौजूद नहीं है" JDK9

 
{ jdk9 } » /cygdrive/c/Program\ Files/Java/jdk-9/bin/javac -d out/production -modulesourcepath org.example.module1/src/ -m org.example.module1 

org.example.module1\src\org.example.module1\org\example\Http2.java:6: error: package java.net.http does not exist 
import java.net.http.HttpRequest; 
        ^
org.example.module1\src\org.example.module1\org\example\Http2.java:7: error: package java.net.http does not exist 
import java.net.http.HttpResponse; 
        ^
org.example.module1\src\org.example.module1\org\example\Http2.java:9: error: package java.net.http does not exist 
import static java.net.http.HttpRequest.noBody; 
         ^
org.example.module1\src\org.example.module1\org\example\Http2.java:9: error: static import only from classes and interfaces 
import static java.net.http.HttpRequest.noBody; 
^ 
org.example.module1\src\org.example.module1\org\example\Http2.java:10: error: package java.net.http does not exist 
import static java.net.http.HttpResponse.asString; 
         ^
org.example.module1\src\org.example.module1\org\example\Http2.java:10: error: static import only from classes and interfaces 
import static java.net.http.HttpResponse.asString; 
^ 
org.example.module1\src\org.example.module1\org\example\Http2.java:14: error: cannot find symbol 
     HttpResponse response = HttpRequest 
     ^
    symbol: class HttpResponse 
    location: class Http2 
org.example.module1\src\org.example.module1\org\example\Http2.java:14: error: cannot find symbol 
     HttpResponse response = HttpRequest 
           ^
    symbol: variable HttpRequest 
    location: class Http2 
org.example.module1\src\org.example.module1\org\example\Http2.java:16: error: cannot find symbol 
       .body(noBody()) 
        ^
    symbol: method noBody() 
    location: class Http2 
org.example.module1\src\org.example.module1\org\example\Http2.java:19: error: cannot find symbol 
     String responseBody = response.body(asString()); 
              ^
    symbol: method asString() 
    location: class Http2 
10 errors 

कमांड लाइन और IntelliJ का उपयोग कर एक ही त्रुटि होती है।

यह मेरे मॉड्यूल में कोई समस्या नहीं है क्योंकि java.net.http के बिना कक्षाएं संकलित और बिना किसी समस्या के चलती हैं।

कोई विचार क्या चल रहा है?

module org.example { 
    requires java.httpclient; 
} 

आप पा सकते हैं:

उत्तर

9

अपने मॉड्यूल परिभाषा में, स्थित src/org/example/module-info.java में (अपने पैकेज का नाम के आधार पर), तो आप java.net.http पैकेज है, जो java.httpclient मॉड्यूल में शामिल किया गया है करने के लिए निर्भरता जोड़ने की जरूरत module summary में जेडीके मॉड्यूल की सूची।

+0

यह पुराना है और [मुझे जवाब के जवाब से बदल दिया गया है] (https://stackoverflow.com/a/43111760/1746118) – nullpointer

6

इस बीच, के बाद से jdk9 के 149 निर्माण, कक्षाएं

  • HttpClient
  • HttpRequest
  • HttpResponse
  • WebSocket

पैकेज jdk.incubator.http ले जाया गया है। वे जिग्स मॉड्यूल jdk.incubator.httpclient का हिस्सा हैं। अधिक जानकारी के लिए टिकट JDK-8170648 देखें।

तो आपको अपने आयात को jdk.incubator.http.* पर बदलना होगा। इसके अलावा, आपको अपने module-info.java में मॉड्यूल jdk.incubator.httpclient शामिल करना होगा। अपने कोड को संकलित और चलाने के दौरान, जावा और जावैक निष्पादन योग्य के आपके आमंत्रण के लिए --add-modules=jdk.incubator.httpclient तर्क जोड़ें।

http क्लाइंट से संबंधित सभी वर्ग jdk9 से हटा दिए गए हैं। वे इनक्यूबेटर सुविधाओं के रूप में शामिल हैं और अब एपीआई का हिस्सा नहीं हैं। उम्मीद है कि नया ग्राहक jdk10 का हिस्सा होगा।

संबंधित मुद्दे