Learn · guides

İlk GraalVM JavaScript Betiğinizi Yazın (2026)

İlk GraalVM JavaScript komut dosyanızı yazın: bir giriş noktası kaydeder, bir olayı tetikler ve Java'yı yeniden derlemeden sıcak yeniden yükleyin. Çalışır durumda bir örnek ile.

TRtrolPublished 4 min read

İlk GraalVM JavaScript Betiğinizi Yazın

İlk bir GraalVM JavaScript betiği yazmak, üç küçük adımdan oluşur: betiği ana makinenin giriş noktasıyla kaydetmek, bir olaya veya modüle bağlamak ve motorun yükleyebilmesi için betikler klasörüne kaydetmek. Motor, GraalVM Çok Dilli API üzerinde çalışır, bu nedenle betik gerçek JavaScript'tir ve herhangi bir Java derlemesi olmadan yeniden yüklenir.

Öncelikle İhtiyacınız Olanlar

Motoru yerleştiren bir ana program. Ana program GraalVM JavaScript ile birlikte gelir, komut dosyalarının çağırabileceği bir dizi nesneyi sunar ve bir komut dosyası klasörünü izler. GraalVM'i kendiniz yüklemenize gerek yoktur; ana program onu içerir. Ana program size verdiği nesnelere karşı düz JavaScript yazarsınız.

Bu nesnelerin neye karşılık geldiğini bilmek yardımcı olur, ancak başlamak için herhangi bir Java yazmanıza gerek yoktur. Daha önce JavaScript yazdıysanız, kalıp size tanıdık gelecektir: ana program, içe aktardığınız bir kütüphane gibi davranır ve programın iç yapısına erişmek için onu kullanırsınız.

Üç Adım

  1. Betikleri klasörünü bul

    Barındırıcı, başlatıldığında bilinen bir dizindeki betikleri yükler. Tam yolu barındırıcının belgelerinde kontrol edin. Genellikle, kurulum dizinindeki scripts/ klasörüdür.

  2. Bir betik dosyası oluşturun

    O klasörde yeni bir .js dosyası oluşturun. Sunucu, bir sonraki yüklemede, başlangıçta veya destekleniyorsa bir yeniden yükleme komutu çalıştırdığınızda betikleri algılayacaktır.

  3. Kaydet ve bağla

    Dosya içinde, komut dosyasını ana makinenin giriş noktasıyla ilişkilendirin, ardından bir davranışa bir olay ekleyin veya ana makinenin tanıdığı bir modül tanımlayın.

İşte bu kadar. Dosyayı kaydedin, yeniden yükleyin ve betik çalışır. Derleme adımı yok, derleme yok, bekleme yok. Sadece düzenleyin ve yeniden yükleyin.

Minimal bir örnek

Çoğu ana bilgisayar, kendini kaydetmek ve JavaScript'i programa bağlayan birkaç ara nesne için bir betiğe bir giriş noktası verir. Tam adlar ana bilgisayara bağlıdır, ancak yapı aynıdır. İlk betik genellikle kendini duyurur ve bir olayı tepki verir:

js
// Register the script with the host.
script.register({
  name: "hello-world",
  version: "1.0.0",
});
 
// React to an event the host exposes.
script.on("enable", () => {
  client.print("Hello from my first script.");
});

Gerçek nesne ve yöntem adları için ana bilgisayarın kendi API referansını okuyun. Önemli olan örüntüdür: kaydet, ardından bir olumu bağlayın veya bir modül tanımlayın. Çoğu ana bilgisayar bir olay döngüsü veya yaşam döngüsü bağlantısı sunar ve çoğu betik birine dinleyerek başlar.

Çalışırken sıcak yeniden yükleme

Dosyayı kaydedin ve betikleri yeniden yükleyin (veya canlı yeniden yüklemeyi desteklemeyen ana bilgisayarı yeniden başlatın). Değişiklik, yeniden derleme olmadan etkili olur. Bu hızlı döngü, bir mod derlemek yerine betik yazmanın ana nedenidir: bir betik saniyeler içinde yeniden yüklenirken, derlenmiş bir mod yeniden oluşturulmalı ve yeniden başlatılmalıdır.

YaklaşımYineleme döngüsüDilNe zaman uygun
GraalVM JavaScript betiğiDüzenle, kaydet, yeniden yükleJavaScriptHızlı düzeltmeler, özel davranış
Derlenmiş modYeniden oluştur, yeniden başlatJava veya KotlinDaha büyük özellikler, daha derin bağlantılar

Basit bir özellik ekliyorsanız veya davranışları ayarlıyorsanız, script'ler çözümüdür. Motorun derinlerine girmek veya yeni ilkel nesneleri açığa çıkarmak gerekiyorsa, derlenmiş bir mod daha mantıklı olabilir.

Script'lerin yapıp yapamadığı şeyler

Bir script, yalnızca ana programın sunduğu nesnelere erişebilir. Ana program, GraalVM Polyglot host-access whitelist aracılığıyla script'lerin dokunabileceği sınıfları ve yöntemleri tanımlar ve varsayılan olarak yasaktır. Bu, script'leri güvenli ve öngörülebilir tutar. İstediğiniz nesne açığa çıkarılmamışsa, ana program onu eklemelidir; script tarafından whitelist'ın ötesine geçemezsiniz.

Bu bir özellik, bir hata değil. Bu, betiklerin yanlışlıkla (veya kötü niyetle) iç yöntemleri çağırarak veya erişmemeleri gereken nesnelere girerek ana uygulamayı bozmasını engelliyor. Aynı zamanda, ana uygulamanın bakımcılarının neyin desteklendiği ve neyin desteklenmediği konusunda net bir kontrole sahip olduğu anlamına geliyor.

Sıkça Sorulan Sorular