Kompilowanie plikow javy

0

Mam taki problem:
Chce napisac program w Javie, ktory bedzie mi kompilowal pliki *.java do kodu posredniego.
Ma ktos jakis pomysl, lub robil to ktos?

0
Kratharin napisał(a)

Mam taki problem:
Chce napisac program w Javie, ktory bedzie mi kompilowal pliki *.java do kodu posredniego.
Ma ktos jakis pomysl, lub robil to ktos?

Cale 3s spedzone w dokumentacji Javy: lava.lang.Compiler

pozdrawiam
johny

0

Gwoli ścisłości - w Jave nie ma kodu pośredniego. Pomiędzy kodem źródłowym a bajtowym nie ma żadnej pośredniej postaci...

0
Gość napisał(a)

Gwoli ścisłości - w Jave nie ma kodu pośredniego. Pomiędzy kodem źródłowym a bajtowym nie ma żadnej pośredniej postaci...

Alez oczywiscie, ze jest - dzieki temu mozliwa jest taka latwa przenaszalnosc Javy.

pozdrawiam
johny

0

Kod bajtowy nie jest formą pośrednią, tylko ostateczną (wykonywalną). Maszyna wirtualna javy uruchamia właśnie kod bajtowy. Tak więc w procesie kompilacji nie występuje postać pośrednia, jak np. znane z C++ pliki OBJ, które potem muszą być zlinkowane... Kod źródłowy Javy jest przekształcany bezpośrednio w kod bajtowy i to już się daje uruchomić w JVM. Oczywiście nie wnikam w to, co JVM robi, żeby program działał na danej platformie, bo to jest zupełnie inna kwestia, która nie dotyczy pojęcia "kod pośredni".

Pozdrawiam,
Sylwester.

0
Sylwester napisał(a)

Kod bajtowy nie jest formą pośrednią, tylko ostateczną (wykonywalną)

Oczywiście że jest fomą pośrednią. Wirtualna maszyna JAVY jest interpreterem i to ona zamienia ByteCode na kod wykonywalny. A skoro go interpretuje to możemy powiedzieć że jest formą pośrednią. W moim rozumieniu każdy kod, który nie może wykonać się na danym systemie jest formą pośrednią.

Można powiedzieć, że jest to pojęcie względne, bo jeśli mówimy o samej maszynie wirtualnej to dla nie nie jest to kod pośredni, ale patrząc od strony systemu operacyjnego jak najbardziej jest.

0

No właśnie - pojęcie względne... Jeśli by odpowiadać na pytanie postawione na początku, to należy powiedzieć, że nie można skompilować źródeł Javy do kodu pośredniego. To fakt. NIE MA formy pośredniej podczas procesu kompilacji. Nie występuje proces linkowania.
Zanaczyłem, że nie biorę pod uwagę tego co JVM robi aby program odpalić na danej platformie systemowej. To nie dotyczy tego procesu kompilacji, z którym programista ma bezpośrednio do czynienia. Pomijam już fakt, że w "Javowej" nomenklaturze chyba wcale nie występuje pojęcie "kod pośredni". Jeśli mówi się o kodzie skompilowanym, to zawsze określa się go słowani "kod bajtowy".

Życzę miłego weekendu,
Sylwester.

0
Sylwester napisał(a)

Zanaczyłem, że nie biorę pod uwagę tego co JVM robi aby program odpalić na danej platformie systemowej.

No to moze wez pod uwage, bo wlasnie dzieki temu, ze jest kod posredni JVM odpala program na kazdej maszynie bez powtornej kompilacji kodu. Z tego wlasnie i zdaje sie chyba TYLKO tego powodu w ogole istnieje JVM, bo gdyby kod byl uruchamialny wprost to po co do tego jeszcze srodowisko uruchomieniowe?

pozdrawiam
johny

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