Tam olarak değil.
JEP 247: Eski Platform Sürümleri için Derleme , bu yeni komut satırı seçeneğini tanımlar--release
:
--release
Derleyiciyi, verilen platform sürümünün bir uygulamasına bağlanacak sınıf dosyalarını üretecek şekilde otomatik olarak yapılandıran yeni bir komut satırı seçeneği tanımladık . Platformlar içinde önceden tanımlanmış için javac
, --release N
eşdeğerdir-source N -target N -bootclasspath <bootclasspath-from-N>
. (vurgu benim)
Yani hayır, eşdeğer değil -source N -target N
. Bu eklemenin nedeni "Motivasyon" bölümünde belirtilmiştir:
javac
iki komut satırı seçeneği sağlar -source
ve -target
bunlar, sırasıyla derleyici tarafından kabul edilen Java dilinin sürümünü ve ürettiği sınıf dosyalarının sürümünü seçmek için kullanılabilir. Ancak varsayılan javac
olarak platform API'lerinin en son sürümüne göre derler. Derlenen program bu nedenle yanlışlıkla yalnızca platformun mevcut sürümünde bulunan API'leri kullanabilir. Bu tür programlar, -source
ve 'ye iletilen değerlerden bağımsız olarak platformun eski sürümlerinde çalışamaz -target
. seçenekler. Bu, uzun vadeli bir kullanılabilirlik sorunudur, çünkü kullanıcılar bu seçenekleri kullanarak, belirtilen platform sürümünde çalışabilen sınıf dosyalarını elde edeceklerini umarlar.
Kısaca kaynak ve hedef seçeneklerinin belirtilmesi çapraz derleme için yeterli değildir. Çünkü javac
, varsayılan olarak, platform API'leri en son karşı derler, onlar eski sürümlerinde çalışacak şekilde garanti edilemez. Ayrıca, -bootclasspath
doğru şekilde çapraz derlemek için eski sürüme karşılık gelen seçeneği de belirtmeniz gerekir . Bu, eski sürümle derlenecek ve çalıştırılmasına izin verecek doğru API sürümünü içerir. Sıklıkla unutulduğu için, doğru bir şekilde çapraz derleme yapmak için gerekli tüm şeyleri yapan bir komut satırı seçeneği eklemeye karar verildi.
Posta listesi ve Oracle Belgelerinde daha fazla bilgi edinin . Orijinal hata burada dosyalandı . Bu seçeneğin entegrasyonundan bu yana, JDK yapılarının "Riskler ve Varsayımlar" bölümünde bahsedilen eski sürümlerin platform API'lerinin açıklamalarıyla birlikte geldiğini unutmayın. Bu, çapraz derlemenin çalışması için makinenizde kurulu olan eski sürüme ihtiyacınız olmadığı anlamına gelir.