EnglezăFrancezăGermanăItalianăportughezăRusăSpaniolă

Favicon OnWorks

mips64-linux-gnuabi64-gcj - Online în cloud

Rulați mips64-linux-gnuabi64-gcj în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda mips64-linux-gnuabi64-gcj care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


gcj - compilator anticipat pentru limbajul Java

REZUMAT


gcj [-Idir...] [-d dir...]
[--CLASSPATH=cale] [--classpath=cale]
[-fopțiune...] [--codare=nume]
[--principal=numele clasei] [-Dnume[=valoare]...]
[-C] [--resursă numele resursei] [-d director]
[-Wavertiza...]
fișier sursă...

DESCRIERE


As gcj este doar un alt front-end pentru gcc, acceptă multe dintre aceleași opțiuni ca și gcc.
Acest manual documentează doar opțiunile specifice gcj.

OPŢIUNI


Intrare și producție fișiere
A gcj comanda este ca a gcc comandă, deoarece constă dintr-un număr de opțiuni și fișier
nume. Sunt acceptate următoarele tipuri de nume de fișiere de intrare:

fişier.java
Fișiere sursă Java.

fişier.clasă
Fișiere Java bytecode.

fişier.zip
fişier.borcan
O arhivă care conține unul sau mai multe fișiere „.class”, toate compilate. The
arhiva poate fi comprimată. Fișiere dintr-o arhivă care nu se termină cu .clasă sunt
tratate ca fișiere de resurse; acestea sunt compilate în fișierul obiect rezultat ca miez:
URL-uri.

@fişier
Un fișier care conține o listă de nume de fișiere de intrare separate prin spații albe. (În prezent, acestea
trebuie să fie toate fișiere sursă „.java”, dar acest lucru se poate schimba.) Fiecare fișier numit este compilat,
exact ca și cum ar fi fost pe linia de comandă.

bibliotecă.a
bibliotecă.asa de
-llibname
Biblioteci de folosit la conectarea. Vezi gcc manuală.

Puteți specifica mai mult de un fișier de intrare pe fișierul gcj linie de comandă, caz în care o vor face
toate să fie compilate. Dacă specificați un „-o NUME DE FIȘIER" opțiunea, toate fișierele de intrare vor fi
compilate împreună, producând un singur fișier de ieșire, numit NUME DE FIȘIER. Acest lucru este permis chiar și
când se folosește „-S” sau „-c”, dar nu când se folosește „-C” sau „--resource”. (Aceasta este o extensie
dincolo de ce câmpie gcc permite.) (Dacă sunt specificate mai multe fișiere de intrare, toate trebuie
în prezent să fie fișiere „.java”, deși sperăm să remediam acest lucru.)

Intrare Opţiuni
gcj are opțiuni pentru a controla unde arată pentru a găsi fișierele de care are nevoie. De exemplu, gcj ar putea
trebuie să încărcați o clasă la care face referire fișierul pe care i s-a cerut să îl compilați. Ca
alte compilatoare pentru limbajul Java, gcj are o noțiune de a clasă cale. Sunt
mai multe opțiuni și variabile de mediu care pot fi utilizate pentru a manipula calea clasei.
Cand gcj caută o clasă dată, caută calea clasei căutând potrivire .clasă
or .java fișier. gcj vine cu o cale de clasă încorporată care indică către cel instalat
libgcj.jar, un fișier care conține toate clasele standard.

În textul de mai jos, un director sau o componentă de cale se poate referi fie la un director real
pe sistemul de fișiere sau la a .zip or .borcan dosar, care gcj va căuta ca și cum ar fi o
director.

-Idir
Toate directoarele specificate de „-I” sunt păstrate în ordine și anexate la calea clasei
construit din toate celelalte opțiuni. Cu excepția cazului în care compatibilitatea cu instrumente precum „javac”
este important, vă recomandăm să folosiți întotdeauna „-I” în locul celorlalte opțiuni pentru
manipularea căii de clasă.

--classpath=cale
Aceasta setează calea clasei la cale, o listă de căi separate prin două puncte (pe Windows
sisteme, o listă de căi separate prin punct și virgulă). Acest lucru nu anulează integrarea
cale de căutare ("boot").

--CLASSPATH=cale
Sinonim depreciat pentru „--classpath”.

--bootclasspath=cale
Unde găsiți clasele standard încorporate, cum ar fi „java.lang.String”.

--extdirs=cale
Pentru fiecare director din cale, plasați conținutul acelui director la sfârșitul
calea clasei.

CLASSPATH
Aceasta este o variabilă de mediu care conține o listă de căi.

Calea finală a clasei este construită astfel:

* Mai întâi vin toate directoarele specificate prin „-I”.

* Dacă --classpath este specificat, valoarea acestuia este atașată. În caz contrar, dacă „CLASSPATH”
este specificată variabila de mediu, apoi valoarea acesteia este adăugată. Altfel, curentul
directorul ("".") este adăugat.

* Dacă a fost specificat „--bootclasspath”, adăugați valoarea acestuia. În caz contrar, adăugați încorporatul
director de sistem, libgcj.jar.

* În cele din urmă, dacă a fost specificat „--extdirs”, adăugați conținutul specificatului
directoare la sfârșitul căii de clasă. În caz contrar, adăugați conținutul
extdir-uri încorporate la „$(prefix)/share/java/ext”.

Classfile construit de gcj pentru clasa „java.lang.Object” (și plasat în „libgcj.jar”)
conține un atribut special de lungime zero „gnu.gcj.gcj-compiled”. Compilatorul caută
acest atribut la încărcarea „java.lang.Object” și va raporta o eroare dacă nu este găsită,
cu excepția cazului în care se compilează în bytecode (opțiunea „-fforce-classes-archive-check” poate fi folosită pentru
anulați acest comportament în acest caz particular.)

-fforce-classes-archive-check
Acest lucru forțează compilatorul să verifice întotdeauna atributul special de lungime zero
„gnu.gcj.gcj-compiled” în „java.lang.Object” și emite o eroare dacă nu este găsită.

-fsource=VERSIUNE
Această opțiune este folosită pentru a alege versiunea sursă acceptată de gcj. Implicit este 1.5.

Codificări
Limbajul de programare Java folosește Unicode pe tot parcursul. În efortul de a se integra bine
cu alte locații, gcj permite .java fișierele care urmează să fie scrise folosind aproape orice codificare. gcj
știe cum să convertească aceste codificări în codificarea sa internă în timpul compilării.

Puteți utiliza „--encoding=NUME" opțiunea de a specifica o codificare (a unui anumit caracter
set) pentru a fi utilizat pentru fișierele sursă. Dacă nu este specificat, codificarea implicită provine de la
localitatea dvs. actuală. Dacă sistemul dvs. gazdă nu are suficient suport local, atunci gcj
presupune că codarea implicită este UTF-8 codificarea Unicode.

Pentru a implementa „--encoding”, gcj folosește pur și simplu rutina de conversie „iconv” a platformei gazdă.
Aceasta înseamnă că în practică gcj este limitat de capacitățile platformei gazdă.

Numele permise pentru argumentul „--encoding” variază de la platformă la platformă (din moment ce acestea
nu sunt standardizate nicăieri). In orice caz, gcj implementează codificarea numită UTF-8
intern, deci dacă alegeți să utilizați acest lucru pentru fișierele sursă, puteți fi sigur că acesta
va funcționa pe fiecare gazdă.

Avertismente
gcj implementează mai multe avertismente. Ca și în cazul altor generice gcc avertismente, dacă o opțiune a
formularul „-Wfoo” activează un avertisment, apoi „-Wno-foo” îl va dezactiva. Aici am ales
documentați forma avertismentului care va avea efect -- implicit fiind
opusul celor enumerate.

-Wredundant-modificatori
Cu acest steag, gcj va avertiza despre modificatorii redundanți. De exemplu, va avertiza
dacă o metodă de interfață este declarată „publică”.

-Wextran-punct şi virgulă
Asta cauzează gcj pentru a avertiza despre declarațiile goale. Declarațiile goale au fost
depreciat.

-Wno-învechit
Această opțiune va provoca gcj pentru a nu avertiza când un fișier sursă este mai nou decât potrivirea acestuia
dosarul clasei. În mod implicit gcj va avertiza despre asta.

-Wno-depreciat
Avertizați dacă se face referire la o clasă, o metodă sau un câmp depreciat.

-Wunused
Aceasta este la fel ca gcclui „-Wunused”.

-Perete
Acesta este același cu „-Wredundant-modifiers -Wextraneous-semicolon -Wunused”.

Legarea
Pentru a transforma o aplicație Java într-un program executabil, trebuie să o legați cu cele necesare
biblioteci, la fel ca pentru C sau C++. În mod implicit, linkerul caută o funcție globală numită
"principal". Deoarece Java nu are funcții globale și o colecție de clase Java poate
aveți mai mult de o clasă cu o metodă „principală”, trebuie să spuneți linker-ului care dintre ele
acele metode „principale” pe care ar trebui să le invoce la pornirea aplicației. Poți face asta în
oricare dintre aceste moduri:

* Specificați clasa care conține metoda „principală” dorită atunci când conectați aplicația,
folosind steagul „--main”, descris mai jos.

* Conectați pachetul(e) Java într-o bibliotecă partajată (dll) și nu într-un executabil. Atunci
invocați aplicația folosind programul „gij”, asigurându-vă că „gij” poate găsi
bibliotecile de care are nevoie.

* Conectați pachetele Java cu marcajul „-lgij”, care se leagă în rutina „principală”.
din comanda „gij”. Acest lucru vă permite să selectați clasa a cărei metodă „principală” aveți
doriți să rulați când rulați aplicația. De asemenea, puteți utiliza alte steaguri „gij”, cum ar fi
Indicatori „-D” pentru a seta proprietăți. Folosind biblioteca „-lgij” (mai degrabă decât „gij”
programul mecanismului anterior) are unele avantaje: este compatibil cu statica
conectarea și nu necesită configurarea sau instalarea bibliotecilor.

Aceste opțiuni „gij” se referă la conectarea unui executabil:

--principal=NUMELE CLASEI
Această opțiune este folosită la conectarea pentru a specifica numele clasei a cărei metodă „principală”.
ar trebui să fie invocat atunci când executabilul rezultat este rulat.

-Dnume[=valoare]
Această opțiune poate fi folosită numai cu „--main”. Acesta definește o proprietate de sistem numită nume
cu valoare valoare. Dacă valoare nu este specificat, atunci este implicit șirul gol.
Aceste proprietăți ale sistemului sunt inițializate la pornirea programului și pot fi preluate
în timpul execuției folosind metoda „java.lang.System.getProperty”.

-lgij
Creați o aplicație a cărei procesare în linie de comandă este cea a comenzii „gij”.

Această opțiune este o alternativă la utilizarea „--main”; nu le poți folosi pe amândouă.

-static-libgcj
Această opțiune face ca legătura să fie făcută împotriva unei versiuni statice a runtime-ului libgcj
bibliotecă. Această opțiune este disponibilă numai dacă există suport corespunzător pentru linker.

Prudență: Legătura statică a libgcj poate face ca părți esențiale ale libgcj să fie omise.
Unele părți ale libgcj folosesc reflectarea pentru a încărca clase în timpul execuției. Din moment ce linkerul o face
nu vede aceste referințe la momentul link-ului, se poate omite clasele menționate. The
rezultatul este de obicei (dar nu întotdeauna) o „ClassNotFoundException” care este aruncată în timpul execuției.
Trebuie avut grijă când utilizați această opțiune. Pentru mai multe detalii vezi:
<http://gcc.gnu.org/wiki/Statically%20linking%20libgcj>

Cod Generație
În plus față de mulți gcc opțiuni care controlează generarea codului, gcj are mai multe variante
specific pentru sine.

-C Această opțiune este folosită pentru a spune gcj pentru a genera bytecode (.clasă fișiere) mai degrabă decât obiect
cod.

--resursă numele resursei
Această opțiune este folosită pentru a spune gcj pentru a compila conținutul unui fișier dat în cod obiect
deci poate fi accesat în timpul execuției cu gestionarea protocolului de bază ca miez:/resursă-
nume. Rețineți că numele resursei este numele resursei așa cum a fost găsită în timpul execuției; pentru
de exemplu, ar putea fi folosit într-un apel către „ResourceBundle.getBundle”. Dosarul propriu-zis
numele care urmează să fie compilat în acest fel trebuie specificat separat.

-ftarget=VERSIUNE
Acesta poate fi folosit cu -C pentru a alege versiunea de bytecode emisă de gcj.
implicit este 1.5. Când nu se generează bytecode, această opțiune nu are efect.

-d director
Când este folosit cu „-C”, acest lucru cauzează toate generate .clasă fișierele care urmează să fie introduse în
subdirectorul corespunzător al director. În mod implicit, acestea vor fi puse în subdirectoare
din directorul de lucru curent.

-fno-limite-verificare
În mod implicit, gcj generează cod care verifică limitele tuturor indexării matricei
operațiuni. Cu această opțiune, aceste verificări sunt omise, ceea ce poate îmbunătăți performanța
pentru codul care utilizează extensiv matrice. Rețineți că acest lucru poate avea ca rezultat imprevizibil
comportament dacă codul în cauză încalcă de fapt constrângerile limitelor matricei. Aceasta
Este sigur să utilizați această opțiune dacă sunteți sigur că codul dvs. nu va arunca niciodată un
"Indicele matricei este în afara limitelor".

-fno-store-check
Nu generați verificări ale magazinului de matrice. Când stocați obiecte în matrice, o verificare a timpului de execuție
este în mod normal generat pentru a se asigura că obiectul este compatibil cu atribuirea
tipul de componentă a matricei (care poate să nu fie cunoscută la momentul compilării). Cu asta
opțiunea, aceste verificări sunt omise. Acest lucru poate îmbunătăți performanța pentru codul care stochează
obiecte în matrice frecvent. Este sigur să utilizați această opțiune dacă sunteți sigur că dvs
codul nu va arunca niciodată o „ArrayStoreException”.

-fjni
Cu gcj există două opțiuni pentru scrierea metodelor native: CNI și JNI. În mod implicit
gcj presupune că utilizați CNI. Dacă compilați o clasă cu metode native și
aceste metode sunt implementate folosind JNI, atunci trebuie să folosiți „-fjni”. Această opțiune
cauze gcj pentru a genera stub-uri care vor invoca metodele JNI subiacente.

-fno-afirma
Nu recunoașteți cuvântul cheie „assert”. Acest lucru este pentru compatibilitatea cu versiunile mai vechi
a specificației limbajului.

-fno-optimize-static-class-initialization
Când nivelul de optimizare este mai mare sau egal cu „-O2”, gcj va încerca să optimizeze
modurile în care apelurile în runtime sunt făcute pentru a inițializa clasele statice la prima utilizare
(această optimizare nu este efectuată dacă a fost specificat „-C”.) La compilare la nativ
cod, „-fno-optimize-static-class-initialization” va dezactiva această optimizare,
indiferent de nivelul de optimizare utilizat.

--disable-assertions[=clasa-sau-pachet]
Nu includeți cod pentru verificarea aserțiilor în codul compilat. Dacă
"=clasa sau pachet" lipsește, dezactivează generarea codului de afirmație pentru toate clasele,
cu excepția cazului în care este suprascris de un indicator mai specific „--enable-assertions”. Dacă clasa-sau-pachet
este un nume de clasă, dezactivează numai generarea de verificări de aserțiune în cadrul clasei numite sau
clasele sale interioare. Dacă clasa-sau-pachet este un nume de pachet, dezactivează generarea
verificări de afirmare în pachetul sau subpachetul numit.

În mod implicit, aserțiunile sunt activate atunci când se generează fișiere de clasă sau când nu se optimizează,
și dezactivat la generarea binarelor optimizate.

--enable-assertions[=clasa-sau-pachet]
Generează cod pentru a verifica afirmațiile. Opțiunea este probabil denumită greșit, deoarece încă mai aveți nevoie
pentru a activa verificarea aserțiunilor în timpul execuției și nu acceptăm nicio modalitate ușoară de a face
acea. Deci, acest semnalizare nu este încă foarte util, cu excepția unei suprascrieri parțial
„--disable-assertions”.

-findirect-dispecer
gcj are o compatibilitate binară specială ABI, care este activată de
Opțiunea „-findirect-dispatch”. În acest mod, codul generat de gcj onorează pe
garanții de compatibilitate binară în specificația limbajului Java și rezultatul
fișierele obiect nu trebuie să fie direct legate de dependențele lor. In schimb,
toate dependențele sunt căutate în timpul execuției. Acest lucru permite amestecarea liberă a interpretate și
cod compilat.

Rețineți că, în prezent, „-findirect-dispatch” poate fi folosit doar la compilare .clasă
fișiere. Nu va funcționa la compilarea din sursă. Nici CNI nu lucrează încă cu
compatibilitatea binară ABI. Aceste restricții vor fi ridicate în viitor
eliberare.

Cu toate acestea, dacă compilați codul CNI cu ABI standard, îl puteți apela din cod
construit cu compatibilitatea binară ABI.

-fbootstrap-clasele
Această opțiune poate fi folosită pentru a spune „libgcj” că clasele compilate ar trebui să fie încărcate de
încărcătorul bootstrap, nu încărcătorul clasei de sistem. În mod implicit, dacă compilați o clasă
și conectați-l într-un executabil, va fi tratat ca și cum ar fi fost încărcat folosind
încărcător de clasă de sistem. Acest lucru este convenabil, deoarece înseamnă că lucruri precum
„Class.forName()” va căuta CLASSPATH pentru a găsi clasa dorită.

-reflexie-redusă
Această opțiune determină codul generat de gcj să conţină o cantitate redusă din clasă
metadatele utilizate pentru a sprijini reflectarea în timpul execuției. Costul acestor economii este pierderea de
capacitatea de a utiliza anumite capacități de reflectare ale runtime-ului standard Java
mediu inconjurator. Când se setează toate metadatele, cu excepția celor necesare pentru a obține corect
semantica runtime este eliminată.

Pentru codul care nu utilizează reflectare (adică serializare, RMI, CORBA sau metode de apelare
în pachetul „java.lang.reflect”, „-freduced-reflect” va avea ca rezultat
operațiune cu o economie în dimensiunea codului executabil.

JNI ("-fjni") și compatibilitatea binară ABI ("-findirect-dispatch") nu funcționează
corect, fără metadatele de reflecție completă. Din acest motiv, este o eroare de utilizat
aceste opțiuni cu „-freduced-reflection”.

Prudență: Dacă nu există metadate de reflectare, codul care utilizează un „SecurityManager” poate
nu funcționează corect. De asemenea, apelarea „Class.forName()” poate eșua dacă metoda de apelare are
fără metadate de reflecție.

Configurare-timp Opţiuni
niste gcj Opțiunile de generare a codului afectează ABI rezultat și așa pot fi doar
dat în mod semnificativ atunci când „libgcj”, pachetul de rulare, este configurat. „libgcj” pune
opțiunile adecvate din acest grup în a spec. fișier care este citit de gcj. Aceste opțiuni
sunt enumerate aici pentru a fi complet; dacă utilizați „libgcj”, atunci nu veți dori să atingeți
aceste opțiuni.

-fuzibil-boehm-gc
Acest lucru permite utilizarea codului de marcare bitmap Boehm GC. În special acest lucru cauzează
gcj pentru a pune un descriptor de marcare a obiectelor în fiecare vtable.

-fhash-sincronizare
În mod implicit, datele de sincronizare (datele utilizate pentru „sincronizare”, „așteptați” și
„notifică”) este indicat de un cuvânt în fiecare obiect. Cu această opțiune gcj presupune că
aceste informații sunt stocate într-un tabel hash și nu în obiectul în sine.

-fuzibil-diviz-subrutină
Pe unele sisteme, o rutină de bibliotecă este apelată pentru a efectua divizarea întregilor. Aceasta este
necesar pentru a gestiona corect excepțiile la împărțirea la zero.

-fcheck-references
Pe unele sisteme este necesar să inserați verificări în linie ori de câte ori accesați un obiect
printr-o referință. Pe alte sisteme nu veți avea nevoie de acest lucru deoarece accesează pointerul nul
sunt prinse automat de procesor.

-constructii-atomice-fuzibile
Pe unele sisteme, GCC poate genera cod pentru operațiuni atomice încorporate. Foloseste asta
opțiunea de a forța gcj să folosească aceste elemente încorporate la compilarea codului Java. Unde acest
capacitatea este prezentă, ar trebui să fie detectată automat, astfel încât de obicei nu veți avea nevoie
pentru a utiliza această opțiune.

Utilizați mips64-linux-gnuabi64-gcj online folosind serviciile onworks.net


Ad


Ad

Cele mai recente programe online Linux și Windows