Ukranianфранцузькийнімецькийіталійськийпортугальськаросійськаіспанська

Значок OnWorks

mips-linux-gnu-gcj - Інтернет у хмарі

Запустіть mips-linux-gnu-gcj у постачальнику безкоштовного хостингу OnWorks через Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

Це команда mips-linux-gnu-gcj, яку можна запустити в постачальнику безкоштовного хостингу OnWorks, використовуючи одну з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн- емулятор Windows або онлайн-емулятор MAC OS

ПРОГРАМА:

ІМ'Я


gcj - Компілятор напередодні для мови Java

СИНТАКСИС


gcj [-Iреж...] [-d реж...]
[--CLASSPATH=шлях] [--класний шлях=шлях]
[-fваріант...] [--кодування=name]
[--основний=назви класу] [-Dname[=значення]...]
[-C] [--ресурс ім'я ресурсу] [-d каталог]
[-Wпопереджати...]
вихідний файл...

ОПИС


As gcj це просто ще один передній край ПКУ, він підтримує багато з тих самих параметрів, що й gcc.
У цьому посібнику описані лише конкретні параметри gcj.

ВАРІАНТИ


вхід і вихід файли
A gcj команда схожа на a ПКУ команди, оскільки вона складається з ряду параметрів і файлу
імена. Підтримуються такі типи імен вхідних файлів:

файл.Java
Вихідні файли Java.

файл.клас
Файли байт-коду Java.

файлZIP.
файл. Jar
Архів, що містить один або кілька файлів ".class", усі вони скомпільовані. The
архів може бути стиснутий. Файли в архіві, які не закінчуються .клас він має
розглядаються як файли ресурсів; вони компілюються в результуючий об'єктний файл як серцевина:
URL-адреси.

@файл
Файл, що містить розділений пробілами список імен вхідних файлів. (Наразі ці
усі мають бути вихідні файли ".java", але це може змінитися.) Кожен іменований файл компілюється,
так, ніби це було в командному рядку.

бібліотека.a
бібліотека.тому
-llibname
Бібліотеки, які можна використовувати при з’єднанні. Див ПКУ посібник.

Ви можете вказати більше одного вхідного файлу на gcj командний рядок, у цьому випадку вони будуть
все буде складено. Якщо вказати "-o FILENAME" опції, усі вхідні файли будуть
скомпільовані разом, створюючи єдиний вихідний файл, іменований ФІЛЕНАМ. Це навіть дозволено
при використанні "-S" або "-c", але не при використанні "-C" або "--resource". (Це розширення
поза те, що рівнина ПКУ дозволяє.) (Якщо вказано більше одного вхідного файлу, усі повинні
наразі це файли ".java", хоча ми сподіваємося виправити це.)

вхід опції
gcj має параметри керування, де він шукає потрібні файли. Наприклад, gcj може бути
потрібно завантажити клас, на який посилається файл, який його попросили скомпілювати. Подобається
інші компілятори для мови Java, gcj має поняття а клас шлях. Існує
кілька параметрів і змінних середовища, які можна використовувати для маніпулювання шляхом до класу.
Коли gcj шукає заданий клас, він шукає шлях до класу в пошуках відповідності .клас
or .Java файлу. gcj має вбудований шлях до класу, який вказує на встановлений
libgcj.jar, файл, який містить усі стандартні класи.

У наведеному нижче тексті компонент каталогу або шляху може посилатися або на фактичний каталог
у файловій системі або до a ZIP. or . Jar файл, який gcj буде шукати так, ніби це a
каталог.

-Iреж
Усі каталоги, визначені символом "-I", зберігаються в порядку і додаються до шляху до класу
побудований з усіх інших варіантів. Якщо не сумісність з такими інструментами, як "javac"
важливо, ми рекомендуємо завжди використовувати "-I" замість інших параметрів для
маніпулювання шляхом класу.

--classpath=шлях
Це встановлює шлях до класу до шлях, розділений двокрапкою список шляхів (у Windows
системи, роздільний крапкою з комою список шляхів). Це не перевизначає вбудований
("boot") шлях пошуку.

--CLASSPATH=шлях
Застарілий синонім для "--classpath".

--bootclasspath=шлях
Де знайти стандартні вбудовані класи, наприклад "java.lang.String".

--extdirs=шлях
Для кожного каталогу в шлях, розмістіть вміст цього каталогу в кінці
шлях класу.

ЗАКЛЮЧЕННЯ
Це змінна середовища, яка містить список шляхів.

Остаточний шлях класу будується так:

* Спочатку йдуть усі каталоги, зазначені через "-I".

* Якщо --класний шлях вказано, його значення додається. Інакше, якщо "CLASSPATH"
вказана змінна середовища, потім додається її значення. Інакше струм
додається каталог (".").

* Якщо вказано «--bootclasspath», додайте його значення. В іншому випадку додайте вбудований
системний каталог, libgcj.jar.

* Нарешті, якщо вказано «--extdirs», додайте вміст вказаного
каталоги в кінці шляху до класу. В іншому випадку додайте вміст файлу
вбудовані файли extdir за адресою "$(prefix)/share/java/ext".

Файл класу, створений за допомогою gcj для класу "java.lang.Object" (і розміщеного в "libgcj.jar")
містить спеціальний атрибут нульової довжини "gnu.gcj.gcj-compiled". Компілятор шукає
цей атрибут під час завантаження "java.lang.Object" і повідомить про помилку, якщо її не буде знайдено,
якщо він не компілюється в байт-код (опція "-fforce-classes-archive-check" може використовуватися для
замінити цю поведінку в цьому конкретному випадку.)

-force-class-archive-check
Це змушує компілятор завжди перевіряти спеціальний атрибут нульової довжини
"gnu.gcj.gcj-compiled" в "java.lang.Object" і видає помилку, якщо її не знайдено.

-fsource=Версія
Ця опція використовується для вибору вихідної версії, яку приймає gcj. За замовчуванням 1.5.

Кодування
У мові програмування Java використовується Unicode. Намагаючись добре інтегруватися
з іншими регіонами, gcj дозволяє .Java файли для запису з використанням практично будь-якого кодування. gcj
знає, як перетворити ці кодування у внутрішнє кодування під час компіляції.

Ви можете використовувати "--encoding=NAME" можливість вказати кодування (конкретного символу
set) для використання для вихідних файлів. Якщо це не вказано, кодування за замовчуванням походить з
ваш поточний регіон. Якщо ваша хост-система має недостатню підтримку мовних стандартів, тоді gcj
передбачає кодування за замовчуванням UTF-8 кодування Unicode.

Щоб реалізувати "--кодування", gcj просто використовує процедуру перетворення "iconv" хост-платформи.
Це означає, що на практиці gcj обмежена можливостями хост-платформи.

Назви, дозволені для аргументу «--кодування», відрізняються від платформи до платформи (оскільки вони
ніде не стандартизовані). однак, gcj реалізує кодування імен UTF-8
внутрішньо, тому якщо ви вирішите використовувати це для вихідних файлів, можете бути впевнені, що це так
працюватиме на кожному хості.

Попередження
gcj реалізує кілька попереджень. Як і інші генерики ПКУ попередження, якщо є варіант
форма "-Wfoo" вмикає попередження, потім "-Wno-foo" вимикає його. Ось ми вибрали
задокументуйте форму попередження, яка матиме дію - за замовчуванням є
протилежне тому, що перераховано.

-Зайві модифікатори
З цим прапором, gcj попередить про зайві модифікатори. Наприклад, він попередить
якщо метод інтерфейсу оголошено «загальнодоступним».

-Західний-крапка з комою
Це викликає gcj попереджати про порожні висловлювання. Були порожні заяви
застарів.

-Без застарілих
Цей варіант спричинить gcj не попереджати про те, що вихідний файл новіший за відповідний
файл класу. За замовчуванням gcj попередить про це.

-Wno-застарілий
Попереджати, якщо посилається на застарілий клас, метод або поле.

-Wunused
Це те саме, що ПКУ's "-Wunused".

-Стінка
Це те саме, що "-Wredundant-modifiers -Wextraneous-compi -Wunused".

Зв'язуючий
Щоб перетворити програму Java на виконувану програму, вам потрібно пов’язати її з необхідним
бібліотеки, як і для C або C++. Компонувальник за замовчуванням шукає глобальну функцію з іменем
«головний». Оскільки Java не має глобальних функцій, а набір класів Java може
мати більше одного класу з "основним" методом, вам потрібно повідомити компоновщику, який із них
ті «основні» методи, які він повинен викликати під час запуску програми. Ви можете зробити це в
будь-який із цих способів:

* Укажіть клас, що містить потрібний "основний" метод, коли ви зв'язуєте програму,
використовуючи прапор "--main", описаний нижче.

* Зв’яжіть пакет(и) Java у спільну бібліотеку (dll), а не у виконуваний файл. Тоді
викличте програму за допомогою програми "gij", переконавшись, що "gij" може знайти
бібліотеки, які йому потрібні.

* Зв'яжіть пакет(и) Java з прапором "-lgij", який посилається в "головній" підпрограмі
з команди "gij". Це дозволяє вибрати клас, чий «основний» метод ви використовуєте
хочете запустити під час запуску програми. Ви також можете використовувати інші прапори "gij", наприклад
Прапорці «-D» для встановлення властивостей. Використання бібліотеки "-lgij" (а не "gij"
програма попереднього механізму) має деякі переваги: ​​вона сумісна зі статичною
зв'язування, і не вимагає налаштування чи встановлення бібліотек.

Ці параметри "gij" стосуються зв'язування виконуваного файлу:

--основний=CLASSNAME
Ця опція використовується при зв’язуванні для вказівки імені класу, чий «основний» метод
слід викликати під час виконання отриманого виконуваного файлу.

-Dname[=значення]
Цей параметр можна використовувати лише з «--main». Він визначає властивість системи під назвою name
зі значенням значення. Якщо значення не вказано, то за замовчуванням для нього буде порожній рядок.
Ці системні властивості ініціалізуються під час запуску програми і їх можна отримати
під час виконання за допомогою методу "java.lang.System.getProperty".

-lgij
Створіть програму, чия обробка командного рядка виконується за допомогою команди "gij".

Цей параметр є альтернативою використанню «--main»; ви не можете використовувати обидва.

-static-libgcj
За допомогою цього параметра зв’язування виконується зі статичною версією середовища виконання libgcj
бібліотека. Ця опція доступна лише за наявності відповідної підтримки компонувальника.

Увага: Статичне зв’язування libgcj може призвести до того, що основні частини libgcj будуть опущені.
Деякі частини libgcj використовують відображення для завантаження класів під час виконання. Оскільки компонувальник робить
не бачити цих посилань під час посилання, він може опустити класи, на які посилаються. The
Результатом зазвичай (але не завжди) є "ClassNotFoundException", що створюється під час виконання.
Використовуючи цю опцію, слід бути обережними. Детальніше див.:
<http://gcc.gnu.org/wiki/Statically%20linking%20libgcj>

код Покоління
Крім багатьох ПКУ параметри керування генерацією коду, gcj має кілька варіантів
специфічний для себе.

-C Цей параметр використовується, щоб розповісти gcj генерувати байт-код (.клас файли), а не об’єкт
Код.

--ресурс ім'я ресурсу
Цей параметр використовується, щоб розповісти gcj компілювати вміст заданого файлу в об’єктний код
тому до нього можна отримати доступ під час виконання за допомогою основного обробника протоколу як ядро:/ресурс-
name. Зверніть увагу на це ім'я ресурсу - ім'я ресурсу, знайдене під час виконання; для
наприклад, його можна використовувати у викликі "ResourceBundle.getBundle". Фактичний файл
ім'я, яке збирається таким чином, має бути вказано окремо.

-ftarget=Версія
Це можна використовувати з -C щоб вибрати версію байт-коду, що випромінюється gcj,
за замовчуванням 1.5. Якщо байт-код не генерується, цей параметр не діє.

-d каталог
При використанні з "-C", це призводить до створення всіх .клас файли, які потрібно помістити в
відповідний підкаталог каталог. За замовчуванням вони будуть розміщені в підкаталогах
поточного робочого каталогу.

-fno-bounds-check
За замовчуванням gcj генерує код, який перевіряє межі індексації всього масиву
операції. За допомогою цього параметра ці перевірки пропущені, що може підвищити продуктивність
для коду, який широко використовує масиви. Зауважте, що це може призвести до непередбачуваного результату
поведінка, якщо розглянутий код дійсно порушує обмеження масиву. Це
безпечно використовувати цю опцію, якщо ви впевнені, що ваш код ніколи не видасть
"ArrayIndexOutOfBoundsException".

-fno-store-check
Не генеруйте перевірки сховища масивів. При зберіганні об'єктів у масивах перевірка часу виконання
зазвичай генерується для того, щоб переконатися, що об’єкт є сумісним із призначенням
тип компонента масиву (який може бути невідомим під час компіляції). З цим
варіант, ці перевірки пропущено. Це може підвищити продуктивність коду, який зберігається
об’єкти часто перетворюються на масиви. Ви можете безпечно використовувати цю опцію, якщо ви впевнені у своєму
код ніколи не генеруватиме "ArrayStoreException".

-fjni
з gcj є два варіанти написання нативних методів: CNI і JNI. За замовчуванням
gcj припускає, що ви використовуєте CNI. Якщо ви збираєте клас із нативними методами, і
ці методи реалізовані за допомогою JNI, тоді ви повинні використовувати "-fjni". Цей варіант
Причини gcj для створення заглушок, які будуть викликати основні методи JNI.

-fno-assert
Не розпізнає ключове слово «assert». Це для сумісності зі старими версіями
специфікації мови.

-fno-optimize-static-class-initialization
Коли рівень оптимізації більше або дорівнює "-O2", gcj спробує оптимізувати
спосіб виклику середовища виконання для ініціалізації статичних класів після їх першого використання
(ця оптимізація не виконується, якщо вказано "-C".) Під час компіляції на native
коду, "-fno-optimize-static-class-initialization" вимкне цю оптимізацію,
незалежно від рівня оптимізації.

--disable-assertions[=клас або пакет]
Не включайте код для перевірки тверджень у скомпільований код. Якщо
"=клас або пакет" відсутня вимикає генерацію коду підтвердження для всіх класів,
якщо не замінено більш конкретним прапором "--enable-assertions". Якщо клас або пакет
є ім'ям класу, вимикає лише генерацію перевірок у межах названого класу або
його внутрішні класи. Якщо клас або пакет є ім'ям пакета, вимикає створення
перевірки підтвердження в названому пакеті або підпакеті.

За замовчуванням затвердження ввімкнено під час створення файлів класів або без оптимізації,
і вимкнено під час генерації оптимізованих двійкових файлів.

--enable-assertions[=клас або пакет]
Генерує код для перевірки тверджень. Можливо, варіант названо неправильно, оскільки вам все ще потрібно
щоб увімкнути перевірку підтверджень під час виконання, і ми не підтримуємо жодного простого способу
що Отже, цей прапор поки не дуже корисний, за винятком часткового перевизначення
"--disable-assertions".

-findirect-dispatch
gcj має спеціальну бінарну сумісність ABI, яка вмикається
Опція "-findirect-dispatch". У цьому режимі код, створений за допомогою gcj шанує
гарантії бінарної сумісності в Специфікації мови Java, і в результаті
об'єктні файли не повинні бути безпосередньо пов'язані з їхніми залежностями. натомість
всі залежності перевіряються під час виконання. Це дозволяє вільно змішувати інтерпретовані та
скомпільований код.

Зауважте, що наразі «-findirect-dispatch» можна використовувати лише під час компіляції .клас
файли. Він не працюватиме при компіляції з вихідного коду. CNI також поки не працює з
бінарна сумісність ABI. У майбутньому ці обмеження будуть зняті
звільнення.

Однак, якщо ви компілюєте код CNI зі стандартним ABI, ви можете викликати його з коду
побудовано з двоїчною сумісністю ABI.

-fbootstrap-класи
Цю опцію можна використовувати, щоб сказати "libgcj", що скомпільовані класи мають бути завантажені
завантажувач, а не завантажувач системного класу. За замовчуванням, якщо ви компілюєте клас
і зв’язати його з виконуваним файлом, він буде розглядатися так, ніби він був завантажений за допомогою
завантажувач системного класу. Це зручно, оскільки це означає, що речі, як
"Class.forName()" здійснюватиме пошук ЗАКЛЮЧЕННЯ щоб знайти потрібний клас.

-freduced-reflection
Цей параметр викликає код, згенерований gcj містити зменшену кількість класу
мета-дані, що використовуються для підтримки відображення під час виконання. Ціною цієї економії є втрата
можливість використання певних можливостей відображення стандартного середовища виконання Java
середовище. Коли встановлюються всі метадані, крім тих, які необхідні для отримання правильних
усувається семантика часу виконання.

Для коду, який не використовує відображення (тобто серіалізацію, RMI, CORBA або методи виклику
у пакеті "java.lang.reflect"), "-freduced-reflection" призведе до належного
операція з економією в розмірі виконуваного коду.

JNI ("-fjni") і двійкова сумісність ABI ("-findirect-dispatch") не працюють
належним чином без повного відображення метаданих. Через це використання є помилкою
ці параметри з "-freduced-reflection".

Увага: Якщо немає метаданих відображення, може використовуватися код, який використовує "SecurityManager".
не працює належним чином. Також виклик "Class.forName()" може бути невдалим, якщо метод викликає
немає відображення метаданих.

Налаштувати час опції
Дещо gcj Параметри генерації коду впливають на результуючу ABI, і це може бути тільки так
значуще дається, коли налаштовано "libgcj", пакет середовища виконання. "libgcj" ставить
відповідні варіанти з цієї групи в a spec файл, який читає gcj. Ці варіанти
наведені тут для повноти; якщо ви використовуєте "libgcj", ви не захочете торкатися
ці варіанти.

-запобіжник-boehm-gc
Це дозволяє використовувати код растрового маркування Boehm GC. Зокрема, це викликає
gcj щоб помістити дескриптор маркування об'єкта в кожну vtable.

-fhash-синхронізація
За замовчуванням дані синхронізації (дані, що використовуються для "синхронізації", "чекання" і
"повідомити") вказує слово в кожному об'єкті. З цією опцією gcj припускає, що
ця інформація зберігається в хеш-таблиці, а не в самому об’єкті.

-запобіжник-розділ-підпрограма
У деяких системах бібліотечна програма викликається для виконання цілого поділу. Це
необхідно для правильної обробки винятків при діленні на нуль.

-fcheck-references
У деяких системах необхідно вставляти вбудовані перевірки при кожному доступі до об’єкта
через посилання. В інших системах вам це не знадобиться, оскільки доступ до нульового покажчика
автоматично перехоплюються процесором.

-fuse-atomic-builtins
У деяких системах GCC може генерувати код для вбудованих атомарних операцій. Використовуй це
можливість змусити gcj використовувати ці вбудовані модулі під час компіляції коду Java. Де це
наявна можливість, вона повинна бути автоматично виявлена, тому зазвичай вам не знадобиться
використовувати цю опцію.

Використовуйте mips-linux-gnu-gcj онлайн за допомогою служб onworks.net


Ad


Ad

Найновіші онлайн-програми для Linux і Windows