[Java]Kompilator natywny Javy

0

Czy wie ktoś moze skąd można ściągnać kompilator Javy przekształcający pliki .class lub .java na pliki .exe pod Windowsem???

0

Java jest językiem cross-platform, którego programy uruchamiają się na wirtualnej maszynie. Możesz najwyżej poszukać programów (a są takie na necie, gdzieś na tym forum chyba padła nazwa jednego z nich), które mogą Ci skompilować *.exe do uruchamiania takiego programu, ale to tak jakbyś ręcznie uruchamiał polecenie java.exe plik.class [względnie: javaw.exe plik.class], z wbudowanym downloaderem Java runtime environment [JRE]

0

ja to sobie radze w tkai glupi sposob ,ale dizala
i nikt nie zauwaza
pisze program w c++

#include <iostream>

using namespace std;

int main(){
system("java klasa");
return 0;
}

no i dziala
fachura na maxa :)

0

Szczawik - istnieja kompilatory natywne dla javy, wiec nie jest tak jak piszesz. Zainteresuj sie GCJ.

0
Krolik napisał(a)

Szczawik - istnieja kompilatory natywne dla javy, wiec nie jest tak jak piszesz. Zainteresuj sie GCJ.

Królik - a czy nie znasz może kompilatora natywnego Javy ale dzialajacego pod Windows? Bo GCJ chodzi chyba tylko pod Unixami...

0

GCJ chyba działa pod Windows. GCC działa, to czemu GCJ miałoby nie działać?

0
Krolik napisał(a)

Szczawik - istnieja kompilatory natywne dla javy, wiec nie jest tak jak piszesz. Zainteresuj sie GCJ.

O.. fakt. Przyznam, że pierwszy raz się z tym spotykam; ale rzeczywiście masz rację. Fajnie wiedzieć, że jest coś takiego. Dzięki. [browar]

0

zadnych konkretow...
a skoro temat juz powstal to czy poda ktos jak dla matolka za pomoca jakiego kompilatora pisac mozna programiki w windowsie??
Linki, instrukcja zachecic niesmialych i nowych uzytkownikow? :)

0

natywny na na razie pewno nie bedzie Ci potrzebny, wiec zainteresuj sie JavaJDK (jest "pod windows") i Eclipse (eclipse.org)

pozdrawiam

0

ja mimo wszystko proponuje pisanie w Javie w NETBEANSIE. Chłopak naprawde odwala za nas kawal dobrej roboty. Np. sam uzupelnia w kodzie importy do pakietow.

0

Może coś z tego zadziała:
http://www.ej-technologies.com/products/exe4j/overview.html
http://www.duckware.com/jexepack/index.html
Sam nie korzystałem, bo nie mam Windowsa.

0

Ja też bym polecił dla początkującego netbeans - szczególnie w najchudszej wersji (tylko Java SE). To IDE przy okazji uczy porządku organizując wstępnie wszystkie rzeczy, które tego potrzebują. Potrafi nawet podpowiadać dostępne konstrukcje języka kiedy się ich zapomina - a tak jest właśnie u początkujących.

0

Ja sie tez zapytam o to samo
"jak to zrobic zeby dzialalo?"

mam sciagniety JDK, JCreator i sama masa roznosci do Javy, cos juz 2 GB sie nazbieralo, a napisanie i urochomienie prostego "Hello User" to nastrecza niezle trudnosci, mam to napisane w Jcreator, ale jak to zapisac w .exe? mam w jakichs plikach javy ale tego sie nie da urochomic, klikniecie w ikonke hello powoduje ze mi sie caly JCreator otwiera i to kod zrodlowy pokazuje.
Mam na mysli takie dzialanie jak mialem kiedys w Delphi Builder Borlanda, gdzie pisalem program, wstawialem elementy, i moglem sobie to zapisac jako .exe i przeniesc na kazdy komp i dzialalo. prostackie Hello User robilo sie w mniej niz 2 minuty, byla ikonka hello.exe i po kliknieciu otwieralo sie okienko z przywitaniem, powazniejsze programy tez tam sie dawalo pisac i dzialalo...w javie cos nie moge tego prostego nie moge osiagnac..jak to zrobic?

0

Wpierw powstają pliki źródłowe *.java (można je utworzyć nawet w notatniku). Pliki te są (pół)kompilowane do postaci *.class. IDE (np. JCreator) ułatwia kompilację, ale nie jest konieczne - wystarczyć wpisać polecenie javac *.java (javac MojaKlasa.java). Bardziej rozbudowane programy zawierają wiele klas (plików *.class), które są pakowane do jednego pliku *.jar. Pliki *class i *.jar są takie same dla wszystkich SO (Windows,Linux,Mac,...)
Do uruchomienia programu niezbędne jest by na komputerze była zainstalowana JVM (JRE). Uruchomienie wygląda tak:

  • program jest w pliku MojaKlasa.class
    wpisujemy polecenie

java MojaKlasa
lub (Windows) kojarzymy rozszerzenie class z
programem java

  • program jest w pliku MojProgram.jar
    wpisujemy polecenie

java -jar MojProgram.jar
, w systemie Windows
wystarcza zazwyczaj (tzn. po standardowej instalacji JRE) kliknięcie w ikonę pliku

0

bogdans a niby gdzie to trzeba wpisac?

z tego co widze to juz mam ze 3 wersje JRE na kompie a jak klikam ikonke helloworldapp.java to po dawnemu otwiera mi sie JCreator i widze kod zrodlowy to co sam napisalem...co ja robie nie tak?

0

OMG, Menu Start => Uruchom (Run) => wpisz cmd => wpisz cd katalogZPlikiemClass => wpisz java nazwaKlasy (bez .class).

0

dzieki bogdans za cierpliwosc tylko to nie dziala tak jak powinno, wchodzenie do command line czyli DOSa nie dalo nic wiecej jak napisalem poprzednio, dochodze do plikow class i widze taki komunikat:
'hello' is not recoginized as an internal or external command, operable program or batch file

ale w programiku exe4j skompilowalem gotowe demo, i jest .exe poprzez command line wszedlem do katalogu w ktorym sa, komenda dir pokazala mi co tam jest i jakie rozszerzenia, sa .class, .exe, .ico, .bmp, wpisuje hello i otwiera mi sie okienko hello world, tyle ze to otwiera gotowe exe a nie class, bo mam w innym katalogu same .class i nic z nimi nie moge zrobic bo zobacze komunikat jaki powyzej wpisalem, po prostu utknelem na wyprodukowanu plikow .class i co dalej? mam te .class z windowsa jak w nie wejde to otworzy mi sie Jcreator i pokaze kod zrodlowy, z DOSa komunikat jak wyzej, wiec stoje w miejscu i co ja mam z tym zrobic? co ja robie nie tak?

0

Napisałem

java MojaKlasa

Masz wpisać

java hello

a nie

hello

BTW, moja cierpliwość się właśnie skończyła

0

Jeszcze jedna uwaga. Wiele IDE ma tak, że jeżeli umieścisz metodę main klasy Javy w jakimś pakiecie, to po kompilacji oczekiwanym katalogiem domyślnym dla uruchomienia tej klasy nie jest katalog w którym ta klasa się znajduje, ale katalog wyżej. Na przykład jeżeli umieszczę main() klasy XXX w pakiecie pakiet1, a sam projekt będzie się nazywał program1, to klasa z main() będzie umieszczona zaczynając od foldera projektów na takiej ścieżce: program1/build/pakiet1/XXX.class. Wtedy katalogiem bieżącym dla uruchomienia XXX.main() będzie <folder projektów>/program1/build, a wywołanie powinno uwzględniać ścieżkę: pakiet1/xxx.class. Jeżeli spróbujemy odpalić xxx.class z katalogu w którym xxx.class się znajduje, to otrzymamy błąd nieodnalezionej klasy poniewaź JVM będzie oczekiwać metody main na ścieżce pakiet1/xxx.class, a dostanie ./xxx.class. Stąd trzeba wejść katalog wyżej (program1/build) i stantąd wywołać "java pakiet1/xxx".

Głupie to i mnóstwo nerwów mi kiedyś zjadło, ale wiele IDE tak ma.

Na takie przypadki jedynym skutecznym sposobem jest utworzenie klasy, która będzie bez pakietu, co oznacza, że znajdzie się w katalogu bieżącym dystrybucji pakietu, a z jej metody main można już wywoływać bez problemu wszelkie inne klasy w pakietach. W tak zrobionym projekcie kliknięcie na klasę zawierającą main(), które odpali wywołanie java klasa, zadziała zgodnie z oczekiwaniami uruchomieniem programu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1