Jika perlu memindahkan data disk booting Compute Engine ke luar project Compute Engine, Anda dapat mengekspor image disk booting ke Cloud Storage sebagai file tar.gz
. Jika Anda perlu membuat image persistent disk untuk digunakan saat membuat persistent disk baru di Compute Engine, baca Membuat image kustom.
Anda dapat mencadangkan atau membagikan image kustom dengan mengekspor image ke Cloud Storage. Metode ini ideal untuk membagikan setiap gambar ke project yang tidak memiliki akses ke gambar Anda. Atau, Anda dapat membagikan image dengan memberikan peran pengguna image Compute Engine pada image atau project yang berisinya.
Diagram berikut menunjukkan beberapa alur kerja umum untuk pembuatan dan penggunaan kembali gambar kustom.
Sebelum memulai
- Baca halaman images.
- Jika project tempat Anda ingin mengekspor image memiliki kebijakan image
tepercaya yang telah ditentukan, tambahkan
projects/compute-image-import
danprojects/compute-image-tools
ke daftar yang diizinkan penayang. - Untuk mengetahui cara memenuhi persyaratan sebelum mengekspor image, lihat Prasyarat untuk mengimpor dan mengekspor image VM.
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- mengekspor dari project yang sama dengan tempat image berada
- mengekspor gambar secara manual
Di Konsol Google Cloud, buka halaman Images.
Klik nama gambar yang ingin diekspor untuk membuka halaman detail gambar. Anda tidak dapat mengekspor image publik yang disediakan oleh Google. Anda hanya dapat mengekspor gambar yang sebelumnya dibuat atau diimpor.
Dari halaman detail gambar, klik Ekspor untuk membuka halaman Ekspor Gambar.
Dari halaman Export image, pilih Export format gambar.
Pilih lokasi Cloud Storage tempat Anda akan mengekspor gambar dengan mengklik Browse.
Pilih lokasi Cloud Storage yang ada untuk mengekspor gambar Anda. Atau, ikuti petunjuk untuk membuat bucket Cloud Storage baru, lalu masukkan nama untuk bucket Cloud Storage baru.
Setelah memilih Cloud Storage, pilih nama file untuk gambar yang diekspor. Anda dapat menggunakan nama file default, atau memilih nama file Anda sendiri.
Setelah memilih Cloud Storage, dan memasukkan nama file untuk gambar, klik Select.
Dari halaman Ekspor gambar, klik Ekspor. Setelah memilih Export, konsol Google Cloud akan menampilkan Image export history, tempat Anda dapat melihat proses ekspor image. Untuk detail tambahan tentang proses ekspor image, klik Cloud Build ID untuk membuka halaman Image export details tempat Anda dapat melihat dan mendownload log ekspor image.
Buka halaman Penyimpanan untuk mengakses gambar yang diekspor.
DESTINATION_URI
: tujuan URI Cloud Storage untuk file gambar yang diekspor.IMAGE_NAME
: nama disk image yang akan diekspor.PROJECT_ID
: project ID untuk project yang berisi image yang ingin Anda ekspor.SOURCE_IMAGE
: nama image yang akan diekspor.IMAGE_FORMAT
: format gambar yang diekspor. Format yang valid mencakupvmdk
,vhdx
,vpc
,vdi
, danqcow2
.DESTINATION_URI
: lokasi URI Cloud Storage yang menjadi tujuan ekspor file gambar. Contoh,gs://my-bucket/my-exported-image.vmdk
.- Jalankan permintaan
projects.builds.get
menggunakan
build-id
yang ditampilkan. - Tinjau log yang dihosting di
logUrl
yang disediakan. Buat akun layanan dan tetapkan peran minimum. Untuk informasi selengkapnya tentang cara membuat akun layanan, lihat Membuat dan mengelola akun layanan.
Akun layanan Compute Engine yang ditentukan setidaknya harus memiliki peran berikut yang ditetapkan:
roles/compute.storageAdmin
roles/storage.objectAdmin
Untuk mengetahui informasi selengkapnya, lihat Memberikan peran yang diperlukan ke akun layanan Compute Engine.
Gunakan perintah
gcloud compute images export
untuk mengekspor image.gcloud compute images export \ --destination-uri DESTINATION_URI \ --image IMAGE_NAME \ --compute-service-account SERVICE_ACCOUNT_EMAIL
Ganti kode berikut:
DESTINATION_URI
: tujuan URI Cloud Storage untuk file gambar yang diekspor.IMAGE_NAME
: nama disk image yang akan diekspor.SERVICE_ACCOUNT_EMAIL
: alamat email yang terkait dengan akun layanan Compute Engine yang dibuat pada langkah sebelumnya.
Buat akun layanan dan tetapkan peran minimum. Untuk informasi selengkapnya tentang cara membuat akun layanan, lihat Membuat dan mengelola akun layanan.
Akun layanan Compute Engine yang ditentukan setidaknya harus memiliki peran berikut yang ditetapkan:
roles/compute.storageAdmin
roles/storage.objectAdmin
Untuk mengetahui informasi selengkapnya, lihat Memberikan peran yang diperlukan ke akun layanan Compute Engine.
Di API, buat permintaan
POST
ke Cloud Build API.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-timeout=7000s", "-source_image=SOURCE_IMAGE", "-client_id=api", "-format=IMAGE_FORMAT", "-destination_uri=DESTINATION_URI", "-compute_service_account=SERVICE_ACCOUNT_EMAIL" ], "name":"gcr.io/compute-image-tools/gce_vm_image_export:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-daisy", "gce-daisy-image-export" ] }
Ganti kode berikut:
PROJECT_ID
: project ID untuk project yang berisi image yang ingin Anda ekspor.SOURCE_IMAGE
: nama image yang akan diekspor.IMAGE_FORMAT
: format gambar yang diekspor. Format yang valid mencakupvmdk
,vhdx
,vpc
,vdi
, danqcow2
.DESTINATION_URI
: lokasi URI Cloud Storage yang menjadi tujuan ekspor file gambar. Contoh,gs://my-bucket/my-exported-image.vmdk
.SERVICE_ACCOUNT_EMAIL
: alamat email yang terkait dengan akun layanan Compute Engine yang dibuat pada langkah sebelumnya.
IMAGE_NAME
: nama image yang akan diekspor.DESTINATION_URI
: lokasi URI Cloud Storage yang menjadi tujuan ekspor file gambar.PROJECT_ID
: ID project tempat gambar berada.NETWORK
: jalur lengkap ke jaringan VPC Bersama. Contohnya,projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME
.SUBNET
: Opsional. Jalur lengkap ke subnetwork VPC Bersama. Contohnya,projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
.Penentuan mode ini bergantung pada mode jaringan VPC.
- Jika jaringan VPC menggunakan mode lama, jangan tentukan subnet.
- Jika jaringan VPC menggunakan mode otomatis, menentukan subnet bersifat opsional.
- Jika jaringan VPC menggunakan mode kustom, kolom ini harus ditentukan.
ZONE
: Opsional. Zona yang akan digunakan untuk ekspor. Zona ini harus cocok dengan region subnet. Misalnya, jikaSUBNET
berada di regionus-west1
, zona ekspor harus berupa salah satu dari yang berikut:us-west1-a
,us-west1-b
, atauus-west1-c
.Jika menentukan
SUBNET
, Anda juga harus menentukan zona.Tambahkan gambar ke Cloud Storage.
Di API, buat permintaan
POST
ke Cloud Build API.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-timeout=7000s", "-source_image=SOURCE_IMAGE", "-client_id=api", "-format=IMAGE_FORMAT", "-destination_uri=DESTINATION_URI", "-network=NETWORK", "-subnet=SUBNET", "-zone=ZONE" ], "name":"gcr.io/compute-image-tools/gce_vm_image_export:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-daisy", "gce-daisy-image-export" ] }
Ganti kode berikut:
PROJECT_ID
: project ID untuk project yang berisi image yang ingin Anda ekspor.SOURCE_IMAGE
: nama image yang akan diekspor.IMAGE_FORMAT
: format gambar yang diekspor. Format yang valid mencakupvmdk
,vhdx
,vpc
,vdi
, danqcow2
.DESTINATION_URI
: lokasi URI Cloud Storage yang menjadi tujuan ekspor file gambar. Contoh,gs://my-bucket/my-exported-image.vmdk
.NETWORK
: jalur lengkap ke jaringan VPC bersama. Contohnya,projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME
.SUBNET
: jalur lengkap ke Subnetwork VPC Bersama. Contohnya,projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
.Penentuan mode ini bergantung pada mode jaringan VPC.
- Jika jaringan VPC menggunakan mode lama, jangan tentukan subnet.
- Jika jaringan VPC menggunakan mode otomatis, menentukan subnet bersifat opsional.
- Jika jaringan VPC menggunakan mode kustom, kolom ini harus ditentukan.
ZONE
: zona yang akan digunakan untuk ekspor. Zona ini harus cocok dengan region subnet. Misalnya, jikaSUBNET
berada di regionus-west1
, zona ekspor harus berupa salah satu dari yang berikut:us-west1-a
,us-west1-b
, atauus-west1-c
.Dalam sebagian besar kasus, menentukan zona bersifat opsional. Jika
SUBNET
ditentukan, zona harus ditentukan.
Untuk mengetahui nilai
args
tambahan yang dapat diberikan, lihat bagian flag opsional di halaman GitHub ekspor image VM.Opsional: Hentikan instance tempat disk terpasang sebelum Anda membuat snapshot. Menghentikan instance akan memastikan integritas konten disk dalam snapshot.
Buat snapshot disk. Beri nama snapshot
image-snapshot
.gcloud compute disks snapshot DISK_NAME \ --snapshot-names image-snapshot
Ganti
DISK_NAME
dengan nama disk yang ingin Anda gunakan untuk membuat snapshot. Anda dapat menemukan nama disk dengan mencantumkan disk.Gunakan snapshot
image-snapshot
untuk membuat disk baru bernamaimage-disk
dengan menjalankan perintah berikut:gcloud compute disks create image-disk \ --source-snapshot image-snapshot
Buat disk sementara bernama
temporary-disk
untuk menyimpan filetar
, dan tentukanSIZE
disk agar setidaknya 50% lebih besar dari disk image.Setelah itu, Anda dapat melepaskan dan menghapus disk.
gcloud compute disks create temporary-disk \ --size SIZE
dengan
SIZE
adalah ukuran, dalam gigabyte atau terabyte, disk sementara. Misalnya, tentukan100GB
untuk membuat disk 100 gigabyte.Buat instance dan aktifkan cakupan
storage-rw
pada instance. Selain itu, lampirkanimage-disk
dantemporary-disk
ke instance sebagai disk sekunder dengan atributdevice-name
tertentu. GantiVM_NAME
dengan nama instance yang akan dibuat.gcloud compute instances create VM_NAME \ --scopes storage-rw \ --disk name=image-disk,device-name=image-disk \ --disk name=temporary-disk,device-name=temporary-disk
Perhatikan bahwa Anda meneruskan cakupan akun layanan agar dapat mengupload file ke Cloud Storage di langkah berikutnya.
Tinjau detail tentang memulai instance baru jika diperlukan.
Terhubung ke instance. Ganti
VM_NAME
dengan nama instance yang akan dihubungkan.gcloud compute ssh VM_NAME
Format dan pasang disk sementara. Memformat disk akan menghapus konten disk sementara.
sudo mkdir /mnt/tmp
sudo mkfs.ext4 -F /dev/disk/by-id/google-temporary-disk
sudo mount -o discard,defaults /dev/disk/by-id/google-temporary-disk /mnt/tmp
Opsional: Pasang disk image dan buat perubahan tambahan sebelum Anda membuat file
tar
. Misalnya, Anda mungkin ingin menghapus file yang ada dari direktori/home
jika tidak ingin file tersebut menjadi bagian dari image. Pasang partisi disk yang perlu diubah, ubah file di disk yang perlu diubah, lalu lepas disk setelah selesai.Buat direktori tempat Anda dapat memasang disk atau partisi.
sudo mkdir /mnt/image-disk
Gunakan perintah
ls
untuk menentukan disk atau partisi disk yang perlu dipasang.ls /dev/disk/by-id/
Perintah ini akan mencetak daftar ID dan partisi disk. Misalnya, disk berikut memiliki tabel partisi dengan satu partisi. ID
google-image-disk
mengarah ke disk lengkap tempat Anda ingin membuat image. IDgoogle-image-disk-part1
mengarah ke partisi pertama di disk ini. Pasang partisi jika Anda perlu membuat perubahan pada disk, lalu buat image dari disk penuh.google-image-disk google-image-disk-part1
Pasang disk atau partisi. Jika disk Anda memiliki tabel partisi, pasang setiap partisi untuk disk Anda. Misalnya, pasang
google-image-disk-part1
.sudo mount /dev/disk/by-id/google-image-disk-part1 /mnt/image-disk
Atau, jika disk Anda diformat mentah tanpa tabel partisi, pasang disk
google-image-disk
lengkap.sudo mount /dev/disk/by-id/google-image-disk /mnt/image-disk
Ubah file di direktori
/mnt/image-disk
untuk mengonfigurasi file di disk. Misalnya, Anda dapat menghapus file/mnt/image-disk/home/[USER]/.ssh/authorized_keys
untuk melindungi kunci SSH agar tidak dibagikan.Setelah selesai mengubah file, hapus pemasangan disk.
sudo umount /mnt/image-disk/
Buat file
tar
dari gambar Anda.Setelah selesai menyesuaikan file pada disk image, buat file disk mentah di disk sementara. Nama image disk mentah harus 'disk.raw':
sudo dd if=/dev/disk/by-id/google-image-disk of=/mnt/tmp/disk.raw bs=4096
Kemudian, buat file
tar.gz
:cd /mnt/tmp
sudo tar czvf myimage.tar.gz disk.raw
Perintah ini akan membuat image instance di lokasi berikut:
/mnt/tmp/myimage.tar.gz
Upload gambar ke Cloud Storage.
Untuk mengupload file
tar
ke Cloud Storage, gunakan Google Cloud CLI yang sudah diprainstal di instance Anda.Buat bucket menggunakan gcloud CLI.
Pastikan untuk meninjau pedoman penamaan bucket dan objek sebelum membuat bucket. Kemudian, buat bucket menggunakan perintah berikut. Ganti
BUCKET_NAME
dengan nama bucket yang akan dibuat.me@example-instance:~$ gcloud storage buckets create gs://BUCKET_NAME
Salin file Anda ke bucket baru. Ganti
BUCKET_NAME
dengan nama bucket tempat file akan disalin.me@example-instance:~$ gcloud storage cp /mnt/tmp/myimage.tar.gz gs://BUCKET_NAME
- Membagikan gambar menggunakan peran pengguna gambar.
- Pelajari metode impor yang tersedia untuk Compute Engine.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.
Pembatasan dan batasan
Batasan berikut berlaku untuk proses ekspor gambar.
Batasan umum
Saat Anda mengekspor image, sesi akan dibuat di mesin tempat Anda mengekspor image. Sesi ini harus tetap aktif hingga proses ekspor selesai. Jika sesi dihentikan sebelum proses ekspor selesai, resource sementara seperti disk sementara, instance VM, atau bucket penyimpanan mungkin tidak dihapus. Dalam hal ini, Anda harus menghapus resource sementara ini secara manual.
Proses ekspor menggunakan Cloud Build untuk mengekspor image. Sesi Cloud Build berlangsung maksimal 24 jam. Jika gambar Anda sangat besar dan memerlukan waktu lebih dari 24 jam untuk diekspor, Anda dapat mengekspor gambar secara manual.
Batasan Kontrol Layanan VPC
Untuk project yang dilindungi dengan Kontrol Layanan VPC, gunakan salah satu metode berikut:
Mengekspor gambar dengan satu perintah
Mengekspor gambar ke Cloud Storage
Anda dapat mengekspor image menggunakan konsol Google Cloud, Google Cloud CLI, atau REST.
Konsol
gcloud
Cara yang lebih disukai untuk mengekspor image ke Cloud Storage adalah dengan menggunakan perintah
gcloud compute images export
. Perintah ini menggunakan Daisy untuk merangkai beberapa langkah yang diperlukan untuk mengekspor image. Perintah ini mengasumsikan bahwa Anda telah membuat image, misalnya, dengan perintahgcloud compute images create
.Dengan menggunakan Google Cloud CLI, jalankan:
gcloud compute images export \ --destination-uri DESTINATION_URI \ --image IMAGE_NAME
Ganti kode berikut:
Secara default, image diekspor dalam format Compute Engine, yang merupakan file
disk.raw
yang di-tar dan di-gzip. Untuk mengekspor image dalam format lain yang didukung oleh utilitas disk image QEMU, Anda dapat menggunakan flag--export-format
. Format yang valid mencakupvmdk
,vhdx
,vpc
,vdi
, danqcow2
.Contoh
Misalnya, perintah berikut mengekspor image bernama
my-image
darimy-project
ke bucket Cloud Storage bernamamy-bucket
. Secara default, gambar diekspor sebagaidisk.raw file
dan dikompresi ke dalam format filetar.gz
.gcloud compute images export \ --destination-uri gs://my-bucket/my-image.tar.gz \ --image my-image \ --project my-project
Untuk flag, lihat dokumentasi referensi
gcloud compute images export
.REST
Kirim permintaan
POST
ke Cloud Build API.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-timeout=7000s", "-source_image=SOURCE_IMAGE", "-client_id=api", "-format=IMAGE_FORMAT", "-destination_uri=DESTINATION_URI" ], "name":"gcr.io/compute-image-tools/gce_vm_image_export:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-daisy", "gce-daisy-image-export" ] }
Ganti kode berikut:
Untuk mengetahui nilai
args
tambahan yang dapat diberikan, lihat bagian flag opsional di halaman GitHub ekspor image VM.Contoh respons
Contoh respons berikut menyerupai output yang ditampilkan:
{ "name": "operations/build/myproject-12345/operation-1578608233418", "metadata": { "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.BuildOperationMetadata", "build": { "id": "3a2055bc-ccbd-4101-9434-d376b88b8940", "status": "QUEUED", "createTime": "2019-10-02T18:59:13.393492020Z", "steps": [ { "name": "gcr.io/compute-image-tools/gce_vm_image_export:release", "env": [ "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940" ], "args": [ "-timeout=7056s", "-source_image=my-image", "-client_id=api", "-format=vmdk", "-destination_uri=gs://my-bucket/my-exported-image.vmdk" ] } ], "timeout": "7200s", "projectId": "myproject-12345", "logsBucket": "gs://123456.cloudbuild-logs.googleusercontent.com", "options": { "logging": "LEGACY" }, "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=123456" } }
Ada beberapa cara untuk memantau build Anda:
Mengekspor image dari project menggunakan akun layanan Compute Engine kustom
Selama ekspor image, instance virtual machine (VM) sementara akan dibuat dalam project Anda. Alat ekspor image pada VM sementara ini harus diautentikasi.
Akun layanan adalah identitas yang terpasang pada VM. Token akses akun layanan dapat diakses melalui server metadata instance dan digunakan untuk mengautentikasi alat ekspor image di VM.
Secara default, proses ekspor menggunakan Agen Layanan Compute Engine default project. Namun, jika akun layanan Compute Engine default dinonaktifkan di project Anda atau jika ingin menggunakan akun layanan Compute Engine kustom, Anda harus membuat akun layanan dan menentukannya untuk proses ekspor.
Anda dapat mengekspor image menggunakan Google Cloud CLI atau REST.
gcloud
Contoh
Misalnya, perintah berikut mengekspor image bernama
my-image
darimy-project
ke bucket Cloud Storage bernamamy-bucket
dengan akun layanan yang memiliki emailimage-export-service-account@proj-12345.iam.gserviceaccount.com
. Secara default, gambar diekspor sebagai filedisk.raw
dan dikompresi ke dalam format filetar.gz
.gcloud compute images export \ --destination-uri gs://my-bucket/my-image.tar.gz \ --image my-image \ --project my-project \ --compute-service-account image-export-service-account@proj-12345.iam.gserviceaccount.com
Untuk flag, lihat dokumentasi referensi
gcloud compute images export
.REST
Untuk mengetahui nilai
args
tambahan yang dapat diberikan, lihat bagian flag opsional di halaman GitHub ekspor image VM.Mengekspor image menggunakan VPC Bersama
Sebelum mengekspor image yang menggunakan VPC bersama, Anda harus menambahkan peran
compute.networkUser
ke akun layanan Cloud Build. Untuk mengetahui informasi selengkapnya, lihat Memberikan peran yang diperlukan ke akun layanan Cloud Build.Anda dapat mengekspor image menggunakan Google Cloud CLI atau REST.
gcloud
Gunakan perintah
gcloud compute images export
untuk mengekspor image Anda.gcloud compute images export \ --image IMAGE_NAME \ --destination-uri DESTINATION_URI \ --project PROJECT_ID \ --network NETWORK \ --subnet SUBNET \ --zone ZONE
Ganti kode berikut:
Misalnya, perintah berikut mengekspor image bernama
example-image
darimy-project
ke bucket Cloud Storage bernamamy-bucket
. Dalam contoh ini, jaringan Virtual Private Cloud (my-shared-vp
) menggunakan subnet kustom (my-custom-subnet
). Secara default, image diekspor sebagai filedisk.raw
dan dikompresi ke dalam format filetar.gz
.Contoh perintah
gcloud compute images export \ --image example-image \ --destination-uri gs://my-bucket/my-image.tar.gz \ --project my-project \ --network projects/my-vpc-project/global/networks/my-shared-vpc \ --subnet projects/my-vpc-project/regions/us-west1/subnetworks/my-custom-subnet \ --zone us-west1-c
REST
Membuat dan mengekspor gambar secara manual
Jika perintah
gcloud compute images create
dangcloud compute images export
tidak memenuhi persyaratan Anda, Anda dapat membuat dan mengekspor image secara manual dari instance Compute Engine. Proses ini memiliki langkah-langkah terpisah untuk membuat gambar terlebih dahulu, lalu mengekspor gambar.Dalam contoh berikut, perhatikan bahwa disk yang dibuat disebut image-disk.
Untuk membuat dan mengekspor gambar:
Anda telah mengekspor file ke Cloud Storage. Sekarang Anda dapat membagikan gambar kepada orang lain, atau menggunakan file
tar
untuk menambahkan image baru ke project konsol Google Cloud.Langkah selanjutnya
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-12-22 UTC.
-