영어FrenchGermanItalianPortugueseRussianSpanish

온웍스 파비콘

mips64-linux-gnuabi64-gcj - 클라우드의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 mips64-linux-gnuabi64-gcj 실행

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 mips64-linux-gnuabi64-gcj 명령입니다.

프로그램:

이름


gcj - 자바 언어를 위한 Ahead-of-Time 컴파일러

개요


gcj [-IDIR...] [-d DIR...]
[--CLASSPATH=통로] [--클래스 경로=통로]
[-f선택권...] [--부호화=name]
[--기본=클래스 이름] [-Dname[=가치]...]
[-C] [--자원 리소스 이름] [-d 예배 규칙서]
[-W경고...]
소스 파일...

기술


As gcj 의 또 다른 프론트 엔드일 뿐입니다. GCC, gcc와 동일한 옵션을 많이 지원합니다.
이 설명서는 특정 옵션만 문서화합니다. gcj.

옵션


입력 출력 파일
A gcj 명령은 같다 GCC 여러 옵션과 파일로 구성된다는 점에서 명령
이름. 다음 종류의 입력 파일 이름이 지원됩니다.

파일.자바
자바 소스 파일.

파일.수업
자바 바이트코드 파일.

파일.지퍼
파일.JAR
하나 이상의 ".class" 파일을 포함하는 아카이브로, 모두 컴파일됩니다. NS
아카이브가 압축될 수 있습니다. 다음으로 끝나지 않는 아카이브의 파일 .수업 아르
리소스 파일로 처리됩니다. 그들은 다음과 같이 결과 객체 파일로 컴파일됩니다. 핵심:
URL.

@파일
공백으로 구분된 입력 파일 이름 목록이 포함된 파일입니다. (현재 이들
모두 ".java" 소스 파일이어야 하지만 변경될 수 있습니다.) 각 명명된 파일은 컴파일되고,
마치 명령줄에 있었던 것처럼.

도서관.a
도서관.그래서
-l라이브러리 이름
링크할 때 사용할 라이브러리입니다. 참조 GCC 수동.

하나 이상의 입력 파일을 지정할 수 있습니다. gcj 명령줄, 이 경우
모두 컴파일됩니다. "-o"를 지정하면 파일 이름" 옵션을 선택하면 모든 입력 파일이
함께 컴파일되어 이름이 지정된 단일 출력 파일을 생성합니다. 파일 이름. 이것은 심지어 허용됩니다.
"-S" 또는 "-c"를 사용할 때는 하지만 "-C" 또는 "--resource"를 사용할 때는 그렇지 않습니다. (이것은 확장
무슨 평원 너머로 GCC 허용합니다.) (두 개 이상의 입력 파일이 지정되면 모두
현재 ".java" 파일이지만 이 문제를 해결하기를 희망합니다.)

입력 옵션 중
gcj 필요한 파일을 찾기 위해 찾는 위치를 제어하는 ​​옵션이 있습니다. 예를 들어, gcj 수도
컴파일하도록 요청받은 파일에서 참조하는 클래스를 로드해야 합니다. 좋다
Java 언어용 다른 컴파일러, gcj 의 개념을 가지고 있다. 수업 통로. 있다
클래스 경로를 조작하는 데 사용할 수 있는 여러 옵션 및 환경 변수.
인셀덤 공식 판매점인 gcj 주어진 클래스를 찾고, 일치하는 클래스 경로를 검색합니다. .수업
or .자바 파일. gcj 설치된 위치를 가리키는 내장 클래스 경로와 함께 제공됩니다.
libgcj.jar, 모든 표준 클래스를 포함하는 파일.

아래 텍스트에서 디렉토리 또는 경로 구성요소는 실제 디렉토리 중 하나를 참조할 수 있습니다.
파일 시스템 또는 .지퍼 or .JAR 파일, gcj 인 것처럼 검색할 것입니다.
디렉토리.

-IDIR
"-I"로 지정된 모든 디렉토리는 순서대로 유지되며 클래스 경로 앞에 추가됩니다.
다른 모든 옵션으로 구성됩니다. "javac"와 같은 도구와 호환되지 않는 한
중요하므로 항상 다른 옵션 대신 "-I"를 사용하는 것이 좋습니다.
클래스 경로 조작

--클래스 경로=통로
이것은 클래스 경로를 다음으로 설정합니다. 통로, 콜론으로 구분된 경로 목록(Windows 기반
시스템, 세미콜론으로 구분된 경로 목록). 이것은 내장을 재정의하지 않습니다
("부팅") 검색 경로.

--클래스 경로=통로
"--classpath"에 대한 더 이상 사용되지 않는 동의어입니다.

--부트클래스경로=통로
"java.lang.String"과 같은 표준 내장 클래스를 찾을 수 있는 위치입니다.

--extdirs=통로
각 디렉토리에 대해 통로, 해당 디렉토리의 내용을 맨 끝에 놓습니다.
클래스 경로.

클래스 패스
이것은 경로 목록을 보유하는 환경 변수입니다.

최종 클래스 경로는 다음과 같이 구성됩니다.

* 먼저 "-I"를 통해 지정된 모든 디렉토리가 옵니다.

* 만약에 --클래스 경로 지정되면 해당 값이 추가됩니다. 그렇지 않으면 "CLASSPATH"
환경 변수가 지정되면 해당 값이 추가됩니다. 그렇지 않으면 현재
디렉토리(".")가 추가됩니다.

* "--bootclasspath"가 지정된 경우 해당 값을 추가합니다. 그렇지 않으면 내장
시스템 디렉토리, libgcj.jar.

* 마지막으로 "--extdirs"가 지정된 경우 지정된 내용을 추가합니다.
클래스 경로 끝에 있는 디렉토리. 그렇지 않으면 내용을 추가하십시오.
"$(prefix)/share/java/ext"에 내장된 extdir.

에 의해 빌드된 클래스 파일 gcj "java.lang.Object" 클래스의 경우(및 "libgcj.jar"에 배치됨)
길이가 XNUMX인 특수 속성 "gnu.gcj.gcj-compiled"를 포함합니다. 컴파일러는 다음을 찾습니다.
이 속성은 "java.lang.Object"를 로드할 때 발견되지 않으면 오류를 보고합니다.
바이트코드로 컴파일되지 않는 한("-fforce-classes-archive-check" 옵션을 사용하여
이 특별한 경우에 이 동작을 재정의하십시오.)

-fforce-classes-archive-check
이것은 컴파일러가 항상 길이가 XNUMX인 특수 속성을 확인하도록 합니다.
"java.lang.Object"에 "gnu.gcj.gcj-compiled"를 추가하고 찾지 못하면 오류가 발생합니다.

-소스=버전
이 옵션은 승인된 소스 버전을 선택하는 데 사용됩니다. gcj. 기본값은 1.5.

인코딩
Java 프로그래밍 언어는 전체적으로 유니코드를 사용합니다. 잘 통합하기 위한 노력으로
다른 로케일과 함께 gcj.자바 거의 모든 인코딩을 사용하여 파일을 작성할 수 있습니다. gcj
컴파일 타임에 이러한 인코딩을 내부 인코딩으로 변환하는 방법을 알고 있습니다.

"--encoding=이름" 인코딩을 지정하는 옵션(특정 문자
set) 소스 파일에 사용합니다. 이것이 지정되지 않은 경우 기본 인코딩은
현재 로케일. 호스트 시스템의 로케일 지원이 충분하지 않은 경우 gcj
기본 인코딩을 다음과 같이 가정합니다. UTF-8 유니코드 인코딩.

"--인코딩"을 구현하려면 gcj 단순히 호스트 플랫폼의 "iconv" 변환 루틴을 사용합니다.
즉, 실제로 gcj 호스트 플랫폼의 기능에 의해 제한됩니다.

인수 "--encoding"에 허용되는 이름은 플랫폼마다 다릅니다(
어디에도 표준화되어 있지 않음). 하지만, gcj 명명된 인코딩을 구현합니다. UTF-8
내부적으로, 따라서 소스 파일에 이것을 사용하기로 선택하면
모든 호스트에서 작동합니다.

경고
gcj 여러 경고를 구현합니다. 다른 제네릭과 마찬가지로 GCC 경고, 옵션의 경우
"-Wfoo" 형식은 경고를 활성화하고 "-Wno-foo"는 경고를 비활성화합니다. 여기에서 우리가 선택한
영향을 미칠 경고 형식을 문서화하십시오. 기본값은
나열된 것과 반대입니다.

-중복 수식어
이 깃발로, gcj 중복 수정자에 대해 경고합니다. 예를 들어 경고합니다
인터페이스 메소드가 "공개"로 선언된 경우.

-외부 세미콜론
이 원인 gcj 빈 문에 대해 경고합니다. 빈 진술은
더 이상 사용되지 않습니다.

- 구식 없음
이 옵션은 gcj 소스 파일이 일치하는 파일보다 최신일 때 경고하지 않음
클래스 파일. 기본적으로 gcj 이에 대해 경고할 것입니다.

- 더 이상 사용되지 않음
더 이상 사용되지 않는 클래스, 메서드 또는 필드가 참조되면 경고합니다.

- 사용하지 않은
이것은 GCC의 "-Wunused"입니다.

-벽
이것은 "-Wredundant-modifiers -Wextraneous-세미콜론 -Wunused"와 동일합니다.

연결
Java 응용 프로그램을 실행 가능한 프로그램으로 바꾸려면 필요한 응용 프로그램과 연결해야 합니다.
C 또는 C++와 마찬가지로 라이브러리. 링커는 기본적으로 다음과 같은 전역 함수를 찾습니다.
"기본". Java에는 전역 기능이 없고 Java 클래스 모음이 있을 수 있으므로
"main" 메서드가 있는 클래스가 두 개 이상 있는 경우 링커에 다음 중 어느 것인지 알려야 합니다.
응용 프로그램을 시작할 때 호출해야 하는 "주요" 메서드입니다. 당신은 그것을 할 수 있습니다
다음 방법 중 하나:

* 응용 프로그램을 연결할 때 원하는 "main" 메서드가 포함된 클래스를 지정하고,
아래에 설명된 "--main" 플래그를 사용합니다.

* Java 패키지를 실행 파일이 아닌 공유 라이브러리(dll)에 연결합니다. 그 다음에
"gij" 프로그램을 사용하여 응용 프로그램을 호출하여 "gij"가
필요한 라이브러리.

* "main" 루틴에서 링크되는 "-lgij" 플래그를 사용하여 Java 패키지를 링크합니다.
"gij" 명령에서. 이렇게 하면 "main" 메서드가 있는 클래스를 선택할 수 있습니다.
응용 프로그램을 실행할 때 실행하려고 합니다. 다음과 같은 다른 "gij" 플래그를 사용할 수도 있습니다.
"-D" 플래그를 사용하여 속성을 설정합니다. "gij"가 아닌 "-lgij" 라이브러리 사용
이전 메커니즘의 프로그램)에는 몇 가지 장점이 있습니다. 정적
연결하고 라이브러리를 구성하거나 설치할 필요가 없습니다.

다음 "gij" 옵션은 실행 파일 연결과 관련이 있습니다.

--메인=클래스 이름
이 옵션은 "main" 메소드가 있는 클래스의 이름을 지정하기 위해 링크할 때 사용됩니다.
결과 실행 파일이 실행될 때 호출되어야 합니다.

-Dname[=가치]
이 옵션은 "--main"과 함께만 사용할 수 있습니다. 명명된 시스템 속성을 정의합니다. name
가치있는 가치. 면 가치 지정되지 않은 경우 기본값은 빈 문자열입니다.
이러한 시스템 속성은 프로그램 시작 시 초기화되며 검색할 수 있습니다.
"java.lang.System.getProperty" 메소드를 사용하여 런타임에.

-lgij
명령줄 처리가 "gij" 명령으로 처리되는 응용 프로그램을 만듭니다.

이 옵션은 "--main"을 사용하는 대신 사용할 수 있습니다. 둘 다 사용할 수 없습니다.

-정적-libgcj
이 옵션을 사용하면 libgcj 런타임의 정적 버전에 대해 링크가 수행됩니다.
도서관. 이 옵션은 해당 링커 지원이 있는 경우에만 사용할 수 있습니다.

주의: libgcj의 정적 링크로 인해 libgcj의 필수 부분이 생략될 수 있습니다.
libgcj의 일부는 런타임에 클래스를 로드하기 위해 리플렉션을 사용합니다. 링커가 하기 때문에
링크 타임에 이러한 참조가 표시되지 않으면 참조된 클래스를 생략할 수 있습니다. NS
결과는 일반적으로(항상 그런 것은 아님) 런타임에 "ClassNotFoundException"이 발생합니다.
이 옵션을 사용할 때는 주의해야 합니다. 자세한 내용은 다음을 참조하십시오.
<http://gcc.gnu.org/wiki/Statically%20연결%20libgcj>

암호 세대
많은 것 외에도 GCC 코드 생성을 제어하는 ​​옵션, 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"가 지정된 경우 수행되지 않습니다.) 네이티브로 컴파일할 때
코드 "-fno-optimize-static-class-initialization"은 이 최적화를 끕니다.
사용 중인 최적화 수준에 관계없이

--disable-assertions[=클래스 또는 패키지]
컴파일된 코드에 어설션을 확인하기 위한 코드를 포함하지 마십시오. 만약에
"=클래스 또는 패키지" 누락은 모든 클래스에 대한 어설션 코드 생성을 비활성화합니다.
더 구체적인 "--enable-assertions" 플래그로 재정의되지 않는 한. 만약에 클래스 또는 패키지
는 클래스 이름이며, 명명된 클래스 내에서 어설션 검사 생성을 비활성화하거나
내부 클래스. 만약에 클래스 또는 패키지 는 패키지 이름이며 생성을 비활성화합니다.
어설션은 명명된 패키지 또는 하위 패키지 내에서 확인합니다.

기본적으로 어설션은 클래스 파일을 생성하거나 최적화하지 않을 때 활성화됩니다.
최적화된 바이너리를 생성할 때 비활성화됩니다.

--enable-assertions[=클래스 또는 패키지]
주장을 확인하는 코드를 생성합니다. 여전히 필요하므로 옵션의 이름이 잘못되었을 수 있습니다.
런타임에 어설션 검사를 켜고 우리는 쉽게 할 수 있는 방법을 지원하지 않습니다.
저것. 따라서 이 플래그는 부분적으로 재정의하는 것을 제외하고는 아직 그다지 유용하지 않습니다.
"--disable-assertions".

-findirect-디스패치
gcj 특별한 바이너리 호환성 ABI를 가지고 있습니다.
"-findirect-dispatch" 옵션. 이 모드에서 생성된 코드는 gcj 명예
Java 언어 사양의 바이너리 호환성 보장 및 그 결과
개체 파일은 종속성에 대해 직접 연결할 필요가 없습니다. 대신에,
모든 종속성은 런타임에 조회됩니다. 이를 통해 해석 및
컴파일된 코드.

현재 "-findirect-dispatch"는 컴파일할 때만 사용할 수 있습니다. .수업
파일. 소스에서 컴파일할 때는 작동하지 않습니다. CNI는 아직 작동하지 않습니다.
바이너리 호환성 ABI. 이러한 제한은 향후에 해제될 예정입니다.
놓습니다.

그러나 표준 ABI로 CNI 코드를 컴파일하면 코드에서 호출할 수 있습니다.
바이너리 호환성 ABI로 구축되었습니다.

-fbootstrap-클래스
이 옵션은 "libgcj"에게 컴파일된 클래스가 로드되어야 함을 알리는 데 사용할 수 있습니다.
시스템 클래스 로더가 아니라 부트스트랩 로더입니다. 기본적으로 클래스를 컴파일하면
실행 파일에 링크하면 마치 다음을 사용하여 로드된 것처럼 처리됩니다.
시스템 클래스 로더. 이것은 다음과 같은 것을 의미하므로 편리합니다.
"Class.forName()"이 검색합니다. 클래스 패스 원하는 클래스를 찾기 위해

- 감소된 반사
이 옵션으로 인해 생성된 코드는 gcj 클래스의 감소된 양을 포함하기 위해
런타임 리플렉션을 지원하는 데 사용되는 메타 데이터입니다. 이 절약의 비용은 손실입니다.
표준 Java 런타임의 특정 리플렉션 기능을 사용하는 기능
환경. 정확한 정보를 얻기 위해 필요한 것을 제외한 모든 메타 데이터를 설정할 때
런타임 의미가 제거됩니다.

리플렉션을 사용하지 않는 코드(예: 직렬화, RMI, CORBA 또는 호출 메서드)
"java.lang.reflect" 패키지에서) "-freduced-reflection"은 적절한
실행 가능한 코드 크기를 줄이는 작업.

JNI("-fjni") 및 바이너리 호환성 ABI("-findirect-dispatch")가 작동하지 않음
전체 반사 메타 데이터 없이 올바르게. 이 때문에 사용하는 것은 오류입니다.
이러한 옵션은 "-freduced-reflection"과 함께 사용됩니다.

주의: 리플렉션 메타데이터가 없으면 "SecurityManager"를 사용하는 코드가
제대로 작동하지 않습니다. 또한 호출하는 메서드에 "Class.forName()" 호출이 실패할 수 있습니다
반사 메타 데이터가 없습니다.

구성 시간 옵션 중
일부 gcj 코드 생성 옵션은 결과 ABI에 영향을 미치므로
런타임 패키지인 "libgcj"가 설정될 때 의미있게 주어진다. "libgcj"는
이 그룹에서 적절한 옵션을 투기 에서 읽는 파일 gcj. 이러한 옵션
완전성을 위해 여기에 나열되어 있습니다. "libgcj"를 사용하는 경우 만지고 싶지 않을 것입니다.
이러한 옵션.

-fuse-boehm-gc
이를 통해 Boehm GC 비트맵 마킹 코드를 사용할 수 있습니다. 특히 이로 인해
gcj 객체 표시 설명자를 각 vtable에 넣습니다.

-fhash 동기화
기본적으로 동기화 데이터("동기화", "대기" 및
"notify")는 각 객체의 단어로 가리킵니다. 이 옵션으로 gcj 그것을 가정
이 정보는 객체 자체가 아니라 해시 테이블에 저장됩니다.

-fuse-divide-서브루틴
일부 시스템에서는 정수 나누기를 수행하기 위해 라이브러리 루틴이 호출됩니다. 이것은
XNUMX으로 나눌 때 예외 처리를 올바르게 수행하는 데 필요합니다.

-fcheck-참조
일부 시스템에서는 개체에 액세스할 때마다 인라인 검사를 삽입해야 합니다.
참조를 통해. 다른 시스템에서는 널 포인터가 접근하기 때문에 이것이 필요하지 않습니다.
프로세서에 의해 자동으로 잡힙니다.

-fuse-atomic-builtins
일부 시스템에서 GCC는 기본 제공 원자 연산을 위한 코드를 생성할 수 있습니다. 이것을 사용
Java 코드를 컴파일할 때 gcj가 이러한 내장 기능을 사용하도록 하는 옵션입니다. 이 어디
기능이 있으면 자동으로 감지되어야 하므로 일반적으로 필요하지 않습니다.
이 옵션을 사용합니다.

onworks.net 서비스를 사용하여 온라인으로 mips64-linux-gnuabi64-gcj 사용


Ad


Ad

최신 Linux 및 Windows 온라인 프로그램