Java programımı bir .exe dosyasına nasıl dönüştürebilirim? [kapalı]


500

Java kaynak dosyam (* .java) veya sınıf dosyam (* .class) varsa, onu bir .exe dosyasına nasıl dönüştürebilirim?

Programım için bir yükleyiciye de ihtiyacım var.


1
uygulamalar için basit bir kesmek: main ile bir C kodu ve sistem gibi "system" işlevine bir çağrı yazın ("appletviewer java_src_file");
Madhusoodan P

1
.Exe, JRE içermeyen Windows sisteminde çalışır mı?
Arpit Agarwal

Tam olmak gerekirse (kendim denemedim çünkü yükleyici değil exe sarıcıya ihtiyacımız vardı): Installer paketleri javapackager kullanılarak da oluşturulabilir (bkz. Docs.oracle.com/javase/8/docs/technotes/guides/deploy/… ) . EXE veya MSI yükleyici oluşturmak için ayrıca Inno Setup veya WiX'in indirilmesi ve yüklenmesi gerekir.
anre

Yanıtlar:


324

javapackager

Java Packager aracı, Java ve JavaFX uygulamalarını derler, paketler ve dağıtım için hazırlar. Javapackager komutu, komut satırı sürümüdür.

- Oracle'ın belgeleri

Yardımcı javapackagerprogram JDK ile birlikte gönderilir. -native exeDiğer şeylerin yanı sıra bayraklı .exe dosyaları oluşturabilir .

WinRun4j

WinRun4j, pencereler için bir java başlatıcısıdır. Javaw.exe'ye bir alternatiftir ve aşağıdaki yararları sağlar:

  • Sınıfyolunu, ana sınıfı, vm argümanlarını, program argümanlarını belirtmek için bir INI dosyası kullanır.
  • Görev yöneticisinde görünen özel yürütülebilir ad.
  • Daha esnek bellek kullanımı için ek JVM değişkenleri.
  • Özel simge için yerleşik simge ikame.
  • [daha fazla mermi noktası takip ediyor]

- WinRun4J'nin web sayfası

WinRun4J açık kaynaklı bir yardımcı programdır. It has birçok özellik.

packr

JAR, varlıklarınızı ve JVM'nizi Windows, Linux ve Mac OS X'te dağıtım için paketler ve yerel bir uygulama gibi görünmesi için yerel bir yürütülebilir dosya ekler. Packr, GUI uygulamaları için en uygundur.

- packr README

packr başka bir açık kaynak kodlu araçtır.

JSmooth

JSmooth bir Java Yürütülebilir Paketleyicisidir. Java uygulamalarınız için yerel Windows başlatıcıları (standart .exe) oluşturur. Java dağıtımını, yüklü herhangi bir Java VM'yi kendi başına bulabildiği için çok daha pürüzsüz ve kullanıcı dostu hale getirir.

- JSmooth web sitesi

JSmooth açık kaynaklıdır ve özellikleri vardır, ancak çok eskidir. Son sürüm 2007'de yapıldı.

JexePack

JexePack , Java uygulamanızı (sınıf dosyaları), isteğe bağlı olarak kaynakları (GIF / JPG / TXT / vb.) İle birlikte tek bir sıkıştırılmış 32 bit Windows EXE'e paketlemenizi sağlayan bir komut satırı aracıdır (otomatik komut dosyası oluşturma için harika). Sun'ın Java Runtime Environment yazılımını kullanarak çalışır. Hem konsol hem de pencereli uygulamalar desteklenir.

- JexePack'in web sitesi

JexePack bir deneme yazılımıdır. Üretim kullanımı için ödeme yapılması gerekir ve bu araçla oluşturulan exe dosyaları ödeme yapmadan "hatırlatıcıları" görüntüler. Ayrıca, son sürüm 2013'te yapıldı.

InstallAnywhere

InstallAnywhere, geliştiricilerin herhangi bir platform için profesyonel kurulum yazılımı oluşturmasını kolaylaştırır. InstallAnywhere ile sektör değişikliklerine hızlı bir şekilde adapte olacak, daha hızlı pazara girecek ve ilgi çekici bir müşteri deneyimi sunacaksınız. Ve göndermeden önce projenizin OSS bileşenlerinin güvenlik açığını öğrenin.

- InstallAnywhere web sitesi

InstallAnywhere, Java tabanlı programlar için yükleyiciler üreten ticari / kurumsal bir pakettir. Muhtemelen .exe dosyaları oluşturabilir.

Yürütülebilir JAR dosyaları

.Exe dosyalarına alternatif olarak, JAR bildirimine bir giriş noktası ekleyerek çift ​​tıklandığında otomatik olarak çalışan bir JAR dosyası oluşturabilirsiniz .


Daha fazla bilgi için

Bu konuda mükemmel bir bilgi kaynağı Excelsior'un " Java'yı EXE'e Dönüştür - Neden, Ne Zaman, Ne Zaman ve Nasıl Değil? " Başlıklı makalesidir .

Ayrıca " Ücretsiz ve Ticari EXE Dönüştürme Araçları, En İyi JAR " adlı makaleye bakın .


Tutulma ve Jsmooth kullanmak daha iyidir. Bu adımları takip edin regilanj.wordpress.com/2017/11/19/…
Maria Irudaya Regilan J

Bunlardan herhangi biri benim durumum için işe yarar mı? stackoverflow.com/questions/56674075/…
gunslingor


112

launch4j

Launch4j, hafif Windows yerel yürütülebilir dosyalarında kavanoz olarak dağıtılan Java uygulamalarını sarmak için bir çapraz platform aracıdır. Yürütülebilir dosya belirli bir JRE sürümünü arayacak veya paketlenmiş bir sürüm kullanacak şekilde yapılandırılabilir ve ilk / maks yığın boyutu gibi çalışma zamanı seçeneklerini ayarlamak mümkündür. Sarıcı ayrıca bir uygulama simgesi, yerel bir JRE öncesi açılış ekranı, özel bir işlem adı ve uygun JRE'nin bulunamaması durumunda bir Java indirme sayfası aracılığıyla daha iyi kullanıcı deneyimi sağlar.

- Launch4j'nin web sitesi


35

GÜNCELLEME: GCJ öldü. 2016 yılında resmi olarak GCC projesinden çıkarıldı . Bundan önce bile, yedi yıl boyunca neredeyse terk edildi ve her durumda , uygulanabilir bir alternatif Java uygulaması olarak hizmet etmek için asla yeterince eksiksiz değildi .

Git başka bir Java AOT derleyicisi bulun.

GCJ: Java için GNU Derleyicisi, Java kaynak kodunu Windows yürütülebilir dosyaları da dahil olmak üzere yerel makine koduna derleyebilir.

Java'daki her şey GCJ altında, özellikle GUI bileşenlerinde desteklenmese de (bkz. Hangi Java API'leri desteklenir? SSS bölümünden ne kadar eksiksiz? Sorusu ). GCJ'yi çok kullanmadım, ancak konsol uygulamaları ile yaptığım sınırlı testlerden sonra, iyi görünüyor.

Bağımsız bir yürütülebilir dosya oluşturmak için GCJ kullanmanın bir dezavantajı, ortaya çıkan EXE'nin boyutunun oldukça büyük olabilmesidir. Bir keresinde GCJ'de önemsiz bir konsol uygulaması derledim ve sonuç yaklaşık 1 MB'lik bir yürütülebilir dosya oldu. (Bu konuda farkında olmadığım yollar olabilir. Başka bir seçenek yürütülebilir sıkıştırma programları olacaktır.)

Açık kaynaklı yükleyiciler açısından, Nullsoft Komut Dosyası Yükleme Sistemi bir komut dosyası yükleyicisidir. Merak ediyorsanız, JRE'nin varlığını nasıl tespit edeceğiniz ve gerekli JRE kurulu değilse otomatik olarak nasıl kuracağınız konusunda kullanıcı tarafından katkıda bulunan örnekler vardır . (Sadece size bildirmek için daha önce NSIS kullanmadım.)

Java uygulamalarını yüklemek için NSIS kullanma hakkında daha fazla bilgi için lütfen " Java uygulamalarını dağıtmanın en iyi yolu nedir? " Sorusuna verilen yanıtımı inceleyin .


2
Gördüğüm gibi proje aslında öldü. Ana sayfada haber yok
Vladislav Rastrusny

Oracle dışı kaynaklar doğrulama için TCK'ya erişemediği için GNU Java geliştirme OpenJDK'ya hemen hemen taşındı.
Thorbjørn Ravn Andersen

25

Aşağıdaki kodla bir toplu iş dosyası yapabilirsiniz:

start javaw -jar JarFile.jar

ve herhangi bir .bat to .exe dönüştürücüsünü kullanarak .bat dosyasını bir .exe dosyasına dönüştürün.


2
İyi bir sarmalayıcı bir JRE getirir veya gerekirse kurar ve hata durumlarını işler.
Thorbjørn Ravn Andersen

16

Windows veya unix ortamları için yükleyiciler oluşturmak üzere Install4J kullanıyoruz .

Standart diyaloglarla yapılamayan özel eylemler için komut dosyaları yazmak istediğiniz noktaya kadar kolayca özelleştirilebilir. Ancak Windows hizmetleri kuruyor olsak da, yalnızca standart bileşenler kullanıyoruz.

  • yükleyici + başlatıcı
  • windows veya unix
  • Java'da yazılabilir
  • karınca görevi
  • çok sayıda özelleştirilebilir standart panel ve eylem
  • isteğe bağlı olarak bir JRE içerir veya indirir
  • Windows hizmetlerini de başlatabilir
  • çoklu dil

Sanırım Launch4J aynı şirketten (sadece başlatıcı - yükleyici yok).

PS: ne yazık ki bu onay için ödeme almıyorum. Sadece bu aracı seviyorum.


15

En son Java Web Start , iyi çevrimdışı çalışmaya ve "yerel yüklemeye" izin verecek şekilde geliştirilmiştir. Bakmaya değer.

EDIT 2018: Java Web Start artık en yeni JDK'larla birlikte sunulmuyor. Oracle bunun yerine "uygulamanızı kapalı bir JRE ile yerel olarak dağıtma" modeline doğru ilerliyor.


Görünüşe göre JWS, güvenliği o kadar sıkmıştı ki, daha önce koşmak için çok daha fazla çaba gerektiriyor. Yine de montajcılar için yararlı olabilir.
Thorbjørn Ravn Andersen

9

Tüm uygulamanızı yerel koda, yani bir EXE artı DLL'e dönüştürmeniz gerekiyorsa, ExcelsiorJET var . İyi çalıştığını gördüm ve bir JRE'yi paketlemek için bir alternatif sağladım.


Gerçekten pahalı olsa.
Mordechai


6

Launch4j bir java kaynak kodu (.java) .exe dosyasına dönüştürmek için en iyi araç olduğunu söyleyebilirim Hatta dağıtım için onunla bir jre paket olabilir ve exe bile simgelenebilir. Uygulamanın boyutu artmasına rağmen, kullanıcının yüklü bir jre olmasa bile uygulamanın mükemmel çalışmasını sağlar. Ayrıca, kullanıcı ayrı olarak yüklemek zorunda kalmadan uygulamanız için gereken özel jre'yi sağlayabilmenizi sağlar. Ama ne yazık ki, java önemini kaybediyor. Çoklu platform desteği tamamen yok sayılır ve son uygulama yalnızca pencereler için desteklenir. Sadece Windows kullanıcıları için yiyecek ve içecek, ancak bu büyük bir anlaşma değil.


5

Janel'i kullanabilirsiniz . Bu son olarak bir uygulama başlatıcısı veya hizmet başlatıcısı olarak çalışır (4.x sürümünden edinilebilir).


4

Alternatif olarak, bazı java-c çevirmeni (ör. JCGO ) kullanabilir ve oluşturulan C dosyalarını hedef platform için yerel bir ikili (.exe) dosyaya derleyebilirsiniz.


2
Bu yöntemin etkinliğinden çok inanıyorum. İnanmak için görmek gerekir (çoğu Java kodu JRE API çağrıları olduğunu düşünmek ve tüm bunlar C, n dilin nasıl çalıştığı farklılıklar nevermind).
Camilo Martin

3

Bir java programını bir .exe uygulamasına dönüştürmeye karşı affedilebilir ve nedenlerim var. Bunlardan en önemlisi, bir java programının çok sayıda IDE'den bir jar dosyasına derlenebileceğidir. Program .jar biçimindeyken, yalnızca çok sınırlı bir ortamda çalışacak olan .exe'in aksine Birden Çok Platformda çalışabilir. Java Programlarının çok gerekli olmadıkça Exe'ye dönüştürülmemesine dair bir fikirdeyim. Her zaman bir jar dosyası iken Java programını çalıştıran .bat dosyaları yazabilirsiniz.

exe dönüştürmek gerçekten gerekli ise, Jar2Exe dönüştürücü sessizce bunu yapar ve biri de Ana Uygulama ile birlikte derlenmiş Kütüphaneler ekleyebilirsiniz.


Mesele şu ki, java'nın gücü taşınabilirliktir, ancak birçok insanın basit bir windows exe'sine ihtiyacı vardır. Şahsen, java'nın konseptini seviyorum ... ama kullanıcılarımın çalıştırabilecekleri bir JRE indirmeden dağıtmak istiyorum.
Balmipour

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.