Results (
Indonesian) 1:
[Copy]Copied!
Jawa 9 tenun di cakrawala dan akan datang dengan Jigsaw proyek selesai. Aku tidak membayar banyak perhatian untuk itu sampai saya belajar dari diskusi terbaru di milis OpenJFX bahwa itu dapat memecahkan kode yang sudah ada. Ini sangat tidak lazim di Jawa sehingga itu menggelitik minat saya.Aku pergi membaca JEPs proyek dan beberapa artikel terkait dan sampai pada kesimpulan bahwa, ya, ini akan hancur kode yang sudah ada. Itu tergantung pada proyek Anda Apakah Anda akan terpengaruh tapi Anda mungkin dan mungkin menyakiti.IkhtisarSetelah pengenalan yang sepintas apa proyek Jigsaw adalah tentang, saya akan menjelaskan berpotensi melanggar perubahan.Saya menyusun daftar perubahan dari dokumen yang tersedia. Ada tentu saja tidak ada jaminan bahwa saya menangkap segalanya dan karena saya terbiasa dengan beberapa konsep, aku bisa mendapatkan beberapa fakta salah. Caveat emptor.Jika Anda menemukan kesalahan atau berpikir sesuatu yang bisa dibuat lebih jelas atau lebih tepat, meninggalkan komentar dan saya akan senang untuk memasukkan masukan Anda.Proyek JigsawSaya mungkin menulis penjelasan lebih rinci tentang proyek Jigsaw di beberapa titik, tapi untuk sekarang aku akan malas dan hanya kutipan: Tujuan utama dari proyek ini adalah untuk: Membuat Java SE Platform, dan JDK, lebih mudah terukur ke perangkat komputasi yang kecil; Meningkatkan keamanan dan Kemampu-rawatan implementasi Platform SE Jawa pada umumnya, dan JDK khususnya; Mengaktifkan aplikasi peningkatan kinerja; dan Membuatnya lebih mudah bagi pengembang untuk membangun dan mempertahankan Perpustakaan dan aplikasi besar, untuk SE Jawa maupun EE platform. Untuk mencapai tujuan ini, kami mengusulkan untuk merancang dan menerapkan sistem modul standar untuk Java SE Platform dan menerapkan sistem Platform sendiri, dan untuk JDK. Modul sistem harus cukup kuat untuk modularize JDK dan basis-basis kode warisan besar lain, namun masih menjadi didekati oleh semua pengembang. Lokasi proyek Jigsaw-Feb 11 2015Jika Anda ingin tahu lebih banyak tentang proyek, check out situsnya dan terutama daftar tujuan dan persyaratan (versi sekarang adalah rancangan 3 dari Juli 2014).Hal utama yang harus mengambil di sini adalah sistem modul. Dari versi 9 di kode Java dapat (dan JRE/JDK akan) terorganisir dalam modul bukan file JAR.Melanggar kodeIni kedengarannya seperti internal refactoring jadi mengapa Apakah itu istirahat kode yang ada? Yah, itu tidak melakukan itu selalu dan kompatibilitas yang bahkan salah satu proyek pusat persyaratan (seperti biasa untuk Jawa): Aplikasi yang menggunakan hanya api SE Jawa standar, dan mungkin juga JDK-api spesifik, harus bekerja dengan cara yang sama [...] seperti yang dilakukannya hari ini. Jigsaw proyek: Tujuan & persyaratan-DRAFT 3Yang penting adalah kualifikasi "hanya standar api". Ada banyak cara untuk membuat aplikasi yang mengandalkan beberapa detail penting tidak ditentukan atau usang properti seperti api non-standar, tidak terdokumentasikan folder struktur dan organisasi internal dari file JAR.Jadi mari kita lihat berpotensi melanggar perubahan. Untuk lebih jelasnya, pastikan untuk memeriksa situs proyek, terutama JEP 220, yang berisi deskripsi yang lebih tepat dari sebagian besar apa yang berikut.Internal api menjadi tidak tersediaFile JAR setiap kelas umum terlihat di mana pun di JVM. Ini sangat membatasi kemampuan JDK-implementasi untuk menjaga api internal pribadi. Sebaliknya banyak diakses dan mereka sering digunakan untuk berbagai alasan (misalnya untuk meningkatkan kinerja atau bekerja di sekitar [mantan] bug di Java runtime; Java FAQ menjelaskan mengapa itu mungkin ide yang buruk).Perubahan ini dengan modul. Setiap modul akan mampu secara eksplisit menyatakan jenis yang dibuat tersedia sebagai bagian dari API. JDK akan menggunakan fitur ini dengan benar merangkum semua api internal yang karenanya akan menjadi tidak tersedia.Ini mungkin ternyata menjadi sumber terbesar tidak kompatibel dengan Java 9. Itu pasti adalah yang paling halus karena menyebabkan kesalahan kompilasi.Untuk mempersiapkan Jawa 9 Anda dapat memeriksa kode Anda untuk dependensi berdasarkan api internal. Segala sesuatu yang Anda harus diganti satu atau lain cara. Beberapa workarounds mungkin menjadi tidak perlu. Kelas-kelas lain mungkin menemukan cara mereka ke dalam API publik. Untuk mengetahui apakah hal ini terjadi, Anda akan memiliki untuk penelitian dan mungkin resor untuk menanyakan hal ini pada milis OpenJDK untuk fungsionalitas yang Anda tertarik.Api internalJadi apa yang internal api? Pasti segala yang hidup di sun.*-paket. Saya tidak bisa mengkonfirmasi apakah segala sesuatu di com.sun.* pribadi serta-pasti beberapa bagian tapi mungkin tidak semua dari mereka?Update: Ini mendapat dibersihkan dalam komentar oleh Stuart tanda sebagai berikut: Sayangnya, com.sun adalah campuran dari internal dan publik didukung api ("diekspor"). Anotasi @jdk. Diekspor membedakan kedua dari internal api. Perhatikan juga bahwa paket com.sun.* adalah hanya bagian dari Oracle (formerly Sun) JDK, dan mereka bukan merupakan bagian dari SE Jawa.Jadi jika dimulai dengan com.sun.*, itu tidak akan ada pada setiap non - Oracle JDK. Dan jika itu milik salah satu paket-paket dan tidak lagi dengan @jdk. Diekspor, ini akan menjadi unaccessible dari Jawa 9.Dua contoh, yang mungkin terbukti sangat bermasalah, adalah sun.misc.Unsafeand segalanya di com.sun.javafx.*. Rupanya mantan digunakan dalam sejumlah proyek untuk misi dan kinerja kode kritis. Dari pengalaman pribadi saya dapat mengatakan bahwa yang terakhir adalah unsur penting untuk membangun dengan benar JavaFX kontrol (misalnya semua ControlsFX tergantung pada paket ini). Ianya juga diperlukan untuk bekerja di sekitar sejumlah bug.Kedua kasus khusus ini dianggap untuk menjadi berubah menjadi API publik (Lihat untuk tidak aman dan JavaFX – meskipun beberapa orang lebih suka melihat tidak aman mati dalam api).Alat mendukungUntungnya Anda tidak perlu mencari ketergantungan ini dengan tangan. Karena Jawa 8 JDK berisi jdeps alat analisis dependensi Jawa (Pendahuluan dengan beberapa paket internal, dokumentasi resmi untuk Windows dan Unix), yang bisa daftar semua paket yang proyek tergantung.Jika Anda menjalankan dengan parameter - jdkinternals, ia akan menampilkan semua internal api menggunakan proyek Anda-persis yang Anda akan harus berurusan dengan sebelum Jawa 9 gulungan sekitar.Penggabungan JDK dan JRETujuan utama dari proyek Jigsaw adalah modularisasi Platform Java untuk memungkinkan penciptaan fleksibel runtime gambar. Dengan demikian JDK dan JRE longgar karakter mereka berbeda dan menjadi hanya dua mungkin poin dalam spektrum kombinasi modul.Ini berarti bahwa artefak kedua akan memiliki struktur yang sama. Ini termasuk struktur folder dan kode apapun yang bergantung di atasnya (misalnya dengan memanfaatkan fakta bahwa JDK folder berisi subfolder jre) akan berhenti bekerja dengan benar.Guci internal menjadi tidak tersediaGuci internal seperti lib/rt.jar dan lib/tools.jar akan tidak lagi dapat diakses. Konten mereka akan disimpan dalam file implementasi khusus dengan sengaja tidak ditentukan dan mungkin berubah format.Kode yang menganggap adanya file ini, akan berhenti bekerja dengan benar. Ini mungkin juga menyebabkan beberapa sakit transisi IDEs atau alat-alat serupa karena mereka sangat bergantung pada file-file ini.Skema URL baru untuk konten gambar RuntimeApi beberapa kembali URL untuk file kelas dan sumber daya di runtime (misalnya ClassLoader.getSystemResource). Sebelum Jawa 9 ini adalah jar URL dan mereka memiliki bentuk sebagai berikut:Jar: file:!Proyek Jigsaw akan menggunakan modul sebagai wadah untuk file kode dan kendi individu tidak lagi akan tersedia. Ini membutuhkan format baru jadi api tersebut malah akan kembali URL jrt:JRT: //Kode yang menggunakan contoh-contoh yang dikembalikan oleh api tersebut untuk mengakses file (misalnya dengan URL.getContent) akan terus bekerja sebagai hari ini. Tetapi jika itu tergantung pada structureof jar URL (misalnya dengan pembangunan mereka secara manual atau parsing mereka), akan gagal.Penghapusan mekanisme Override mendukung standarBeberapa bagian dari API Jawa dianggap Standalone teknologi dan dibuat di luar proses masyarakat Jawa (misalnya program). Mungkin diinginkan untuk memperbarui mereka secara independen JDK atau menggunakan penjelajah web. Mekanisme menimpa mendukung standar memungkinkan untuk menginstal versi alternatif standar ini ke JDK.Mekanisme ini deprecated di Jawa 8 dan akan dihapus di Jawa 9. Penggantinya adalah upgradeable modul.Jika Anda belum pernah mendengar tentang hal ini, Anda mungkin tidak menggunakannya. Jika tidak, Anda mungkin ingin memverifikasi apakah Anda menggunakan implementasi akan dibuat menjadi sebuah modul upgradeable.Penghapusan mekanisme ekstensiDengan mekanisme ekstensi api kustom dapat dibuat tersedia untuk semua aplikasi yang berjalan pada JDK tanpa harus nama mereka di jalan kelas.Mekanisme ini deprecated di Jawa 8 dan akan dihapus di Jawa 9. Beberapa fitur yang berguna pada mereka sendiri akan disimpan.Jika Anda belum pernah mendengar tentang hal ini, Anda mungkin tidak menggunakannya. Jika tidak, Anda mungkin ingin memeriksa JEP 220 untuk rincian.Persiapan untuk Java 9Bersama perubahan ini memaksakan risiko untuk setiap proyek besar transisi ke Jawa 9. Salah satu cara untuk menilai dan mengurangi itu bisa "spike update": menggunakan jdeps untuk mengidentifikasi ketergantungan internal api. Setelah memperbaiki ini, menginvestasikan waktu untuk membangun dan menjalankan proyek Anda dengan salah satu Java 9 awal mengakses membangun. Benar-benar menguji bagian yang relevan dari sistem untuk mendapatkan gambaran tentang kemungkinan masalah.Informasi yang dikumpulkan dengan cara ini dapat dikembalikan ke proyek, misalnya oleh posting di Jigsaw-Dev mailing list. Mengutip kata-kata (hampir) akhir JEP 220: Mustahil untuk menentukan dampak dari perubahan-perubahan dalam abstrak. Kita harus karena itu mengandalkan luas internal dan -terutama-pengujian eksternal. […] Jika beberapa perubahan ini terbukti menjadi rintangan dapat diatasi untuk pengembang, deployers, atau pengguna akhir, maka kami akan menyelidiki cara-cara untuk mengurangi dampaknya.Refleksi & LookoutKita telah melihat bahwa proyek Jigsaw akan modularize Java runtime. Internal api (pa
Being translated, please wait..
