Mesin Virtual Java: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
kTidak ada ringkasan suntingan
Tidak ada ringkasan suntingan
(5 revisi perantara oleh 4 pengguna tidak ditampilkan)
Baris 1:
[[Berkas:Java virtual machine architecture.svg|jmpl|300px260px|Gambaran umum arsitektur JVM. Kode sumber dikompilasi menjadi bytcode java. Setiap platform yang mendukung JVM dapat mengekseksi bytcode java tersebut.]]
[[File:JvmSpec7.png|thumb|Ikthisar dari arsitektur Java virtual machine (JVM) berdasarkan spesifikasi Java Virtual Machine Edisi Java SE 7.]]
'''Mesin virtual java''' ({{lang-en|'''Java Virtual Machine'''}} atau disingkat '''JVM''') merupakan [[mesin virtual]] yang digunakan secara khusus mengeksekusi berkas [[bytecode|bytecode java]]. Menurut [[Sun Microsystems]] (sekarang merupakan bagian dari [[Oracle Corporation]]), terdapat lebih dari 4,5 miliar lebih perangkat keras di dunia yang memiliki mesin virtual java di dalamnya.
 
Baris 5 ⟶ 6:
JVM merupakan perangkat lunak yang dikembangkan secara khusus agar terlepas dari ketergantungan atas [[perangkat keras]] serta [[sistem operasi]] tertentu. JVM menyediakan lingkungan kerja yang dibutuhkan untuk menjalankan aplikasi berbasis java serta mengotomatisasikan fitur-fitur seperti penanganan kesalahan. JVM umumnya didistribusikan bersama dengan seperangkat pustaka dasar yang mengimplementasikan antarmuka pemrograman aplikasi java, ''Application Programming Interface''' (API) yang dinamai sebagai Java Runtime Environment (JRE).
 
Program yang dieksekusi oleh JVM merupakan program berbasis [[bytecode]] yang umumnya ditulis dan dikompilasi dengan menggunakan bahasa pemrograman [[Java]], namuntetapi saat ini bisa juga berasal dari bahasa pemrograman lain seperti: Jython ([[Python (bahasa pemrograman)|Python]]), Groovy, JRuby ([[Ruby (bahasa pemrograman)|Ruby]]).
 
Mesin virtual java standarnya dibuat oleh [[Oracle Corporation|Oracle]], namuntetapi mesin-mesin virtual java lainnya yang menggunakan merek dagang "JAVA" boleh dibuat oleh perusahaan lain sejauh produk-produk tersebut tunduk pada spesifikasi yang ditetapkan serta kesepakatan atas kontrak obligasi antara perusahaan pembuat dengan Oracle.
 
== Lisensi ==
Mulai dari J2SE 5.0, perubahan-perubahan atas spesifikasi JVM dikembangkan dengan menggunakan basis JCP sebagai JSR 924.<ref>[http://www.jcp.org/en/jsr/detail?id=924 JSR 924], merujuk perubahan-perubajan atas spesifikasi JVM mulai dari J2SE 5.0</ref> Pada tahun 2006, perubahan atas spesifikasi untuk mendukung perubahan yang diusulkan terhadap format berkas class (JSR202<ref>[http://www.jcp.org/en/jsr/detail?id=202 JSR 202], merujuk perubahan-perubajan atas spesifikasi format berkas class</ref>) telah dilakukan sebagai rilis pengelolaan dari JSR 924. Spesifikasi atas JVM dipublikasikan pula dalam bentuk buku,<ref>''[http://java.sun.com/docs/books/vmspec/ The Java Virtual Machine Specification]'' (edisi [http://java.sun.com/docs/books/vmspec/html/VMSpecTOC.doc.html pertama] dan [http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html kedua] juga tersedia dalam jaringan)</ref> dikenal sebagai "buku biru" (''blue book''). TheIsi prefacekata statespengantarnya adalah:
{{quote|Kami meyakini spesifikasi yang ada merupakan dokumen yang cukup lengkap atas implementasi JVM yang memungkinkan implementasi clean-room JVM dapat dilakukan dengan tetap menjaga kompatibilitasnya. Oracle menyediakan tes yang memverifikasi kebenaran atas fungsi dan operasionalitas atas JVM tersebut.}}
 
JVM milik oracleOracle dikenal sebagai ''HotSpot'', sementara implementasi clean-room Java lainnya termasuk di dalamnya adalah Kaffe, IBM J9, dan [[Dalvik]]. Oracle secara ketat menjaga kontrol atas merek dagang Java, yang digunakan untuk mensertifikasi paket-paket perangkat lunak sejenis agar senantiasa selaras serta memiliki kompatibilitas penuh dengan spesifikasi yang telah ditetapkan.
 
== JVM pada peramban web ==
Di awal masa pakai platform Java, JVM dipasarkan sebagai teknologi peramban untuk membuat [[aplikasi Rich Web]]. {{As of|2018}}, kebanyakan peramban web dan sistem operasi menggabungkan peramban web tidak dikirim dengan [[Plug-in (komputasi)|plug-in]] Java, maupun mereka memperbolehkan pemuatan samping plugin non-[[Adobe Flash|Flash]] manapun. Plugin peramban Java sudah tidak digunakan lagi pada [[JDK]] 9.<ref name="ars-nopluginjdk9">{{cite web|date=28 January 2016|title=Oracle deprecates the Java browser plugin, prepares for its demise|url=https://arstechnica.com/information-technology/2016/01/oracle-deprecates-the-java-browser-plugin-prepares-for-its-demise/|website=Ars Technica|archive-url=https://web.archive.org/web/20160408145301/http://arstechnica.com/information-technology/2016/01/oracle-deprecates-the-java-browser-plugin-prepares-for-its-demise/|archive-date=8 April 2016|access-date=15 April 2016|url-status=live}}</ref>
 
=== JVM dan interpreter JavaScript ===
Sejak Mei 2016, JavaPoly mengizinkan pengguna untuk memasukan pustaka Java yang tidak dimodifikasi, dan memanggilnya langsung dari JavaScript. JavaPoly memungkinkan situs web menggunakan perpustakaan Java yang tidak dimodifikasi, bahkan jika penggunanya tidak mempunyai Java terinstal di komputer mereka.<ref>{{cite magazine|last=Krill|first=Paul|title=JavaPoly.js imports existing Java code and invokes it directly from JavaScript|url=http://www.infoworld.com/article/3069995/java/new-javascript-library-brings-java-to-browsers-without-applets.html|magazine=InfoWorld|access-date=18 July 2016|date=13 May 2016|archive-date=25 July 2016|archive-url=https://web.archive.org/web/20160725024906/http://www.infoworld.com/article/3069995/java/new-javascript-library-brings-java-to-browsers-without-applets.html|url-status=live}}</ref>
 
== Lihat pula ==
Baris 20 ⟶ 27:
* [[P-Code|Bytecode]]
 
== RujukanCatatan kaki ==
{{Refbegin}}
* ''[http://java.sun.com/docs/books/vmspec/2nd-edition/jvms-clarify.html Clarifications and Amendments to the Java Virtual Machine Specification, Second Edition]'' includes list of changes to be made to support J2SE 5.0 and JSR 45
* [http://www.jcp.org/en/jsr/detail?id=45 JSR 45], specifies changes to the class file format to support source-level debugging of languages such as [[JavaServer Pages]] (JSP) and [[SQLJ]] that are translated to Java
{{Refend}}
 
== Referensi ==
{{reflist}}
 
Baris 30 ⟶ 39:
* {{en}} [http://java.sun.com/docs/books/vmspec/ The Java Virtual Machine Specification]
* {{en}} {{dmoz|Computers/Programming/Languages/Java/Implementations|Java implementations}}
* {{en}} [http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9067358 Sun to build virtual machine for iPhone - ComputerWorld] {{Webarchive|url=https://web.archive.org/web/20080508214225/http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9067358 |date=2008-05-08 }}
* {{en}} [http://java.com/en/download/inc/windows_new_xpi.jsp Java Virtual Machine Download Link]
* {{en}} [http://igormaznitsa.com/projects/mjvm/index.html JVM implementation in pure Java]
 
[[Kategori:Perangkat lunak virtualisasi|JVM]]
[[Kategori:Java]]
[[Kategori:Mesin virtual Java]]