Javapath: Mengapa Oracle Membuatnya?

Bagi kita yang menginstal Oracle JDK versi 15 ke atas pada sistem Operasi Windows. Path yang akan diperoleh pascainstalasi tidak menuju ke folder "bin" pada lokasi JDK diinstal, melainkan memiliki format path yang terlihat seperti:
  • "<drive>:\ProgramData\Oracle\Java\javapath"; atau
  • "<drive>:\Program Files\Common Files\Java\javapath"
 
Hasil instalasi mengatur path Java secara default mengarah ke "javapath".
 
Begini tampak gabungan dari path level sistem dan user dalam perangkat saya. Satu di antaranya adalah path Oracle JDK 17 yang belum lama diinstal.

> echo %path:;=&echo.%


Bila kita telusuri javapath, di dalamnya berisi:
  • java.exe
  • javac.exe
  • javaw.exe
  • jshell.exe
 
Padahal beberapa program ini juga terdapat pada folder bin lokasi utama JDK, yang mana ketika instalasi dilakukan saya membiarkan lokasi default JDK pada "C:\Program Files\Java\jdk-17".
 
Lalu, apa sebenarnya "javapath" ini?
 
Sebenarnya secara teknis javapath tepatnya bukanlah sebuah direktori, melainkan "junction". Junction atau junction point adalah salah satu dari tiga linking tool dalam NTFS (NT File System).
 
> dir
 

Junction merupakan link direktori yang seperti namanya berperan menjadi penghubung terhadap sebuah direktori target (sesungguhnya). Direktori target dapat terhubung ke junction baik itu dalam partisi yang sama ataupun berbeda, selagi keduanya berada terkoneksi secara lokal di sebuah komputer—bukan remote desktop maupun server. Bila dianalogikan, junction itu seperti pintu masuk lain dari suatu folder. 
 
Uniknya, hasil command CMD pada tampak di atas memperlihatkan direktori target dari javapath berada dalam induk direktori yang sama, terget itu adalah
 "javapath_target_6025698". 
 
Terlihat semacam shorcut yang sia-sia, bukan?
 
> tree /f
 
 
 
Direktori javapath_target_6025698 inilah yang secara real berisi 4 buat file sebelumnya, sedangkan apa yang berada dalam javapath tidak lain merupakan sekumpulan link ber-ikon saja, sehingga seolah javapath dan targetnya adalah dua direktori yang kembar.
 
 
Tujuan adanya junction umumnya agar memungkinkan backup data menjadi lebih dinamis, tak peduli berapa banyak data baru terus berdatangan seiring waktu menuju path persisten, karena nyatanya direktori utama tempat penyimpanan sebenarnya dapat diubah-pindahkan. Akan tetapi, agak berbeda dengan javapath, ia seolah ada untuk mengaburkan path absolut file original dari program seperti java.exe dan javac.exe, karena direktori sebagai targetnya sekadar menyimpan salinannya.
 
Maka dugaan yang bisa disandarkan terakit ini yaitu bahwa javapath merupakan upaya proteksi tingkat lanjut, suatu cara manipulatif mencegah akses langsung ke direktori utama JDK melalui environment variable PATH yang tertanam dalam sistem. Mengingat bahwa proses instalasi hanyalah mengatur path Java, tetapi tidak dengan JAVA_HOME—environment variable sebagai poin akses menuju direktori utama JDK.
 
Terlepas dari apapun tujuan sebenarnya, "path ala Oracle" ini di awal kemunculannya cukup menimbulkan pro dan kontra karena dinilai melanggar konvensi umum dalam komunitas Java.

 

Posting Komentar

Lebih baru Lebih lama

Formulir Kontak