ããã¯ã³ãã³ãmips64-linux-gnuabi64-gcjã§ãããUbuntu OnlineãFedora OnlineãWindowsãªã³ã©ã€ã³ãšãã¥ã¬ãŒã¿ãŒãMACOSãªã³ã©ã€ã³ãšãã¥ã¬ãŒã¿ãŒãªã©ã®è€æ°ã®ç¡æãªã³ã©ã€ã³ã¯ãŒã¯ã¹ããŒã·ã§ã³ã®XNUMXã€ã䜿çšããŠOnWorksç¡æãã¹ãã£ã³ã°ãããã€ããŒã§å®è¡ã§ããŸãã
ããã°ã©ã ïŒ
NAME
gcj-Javaèšèªçšã®äºåã³ã³ãã€ã©
SYNOPSIS
GCJ [-IDIR...] [-d DIR...]
[--ã¯ã©ã¹ãã¹=path] [-ã¯ã©ã¹ãã¹=path]
[-fãªãã·ã§ã³...] [- ãšã³ã³ãŒãã£ã³ã°=å]
[- äž»èŠ=ã¯ã©ã¹å] [-Då[=å€] ...]
[-C] [- è³æº ãªãœãŒã¹å] [-d ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã]
[-WèŠåãã...]
ãœãŒã¹ãã¡ã€ã«...
DESCRIPTION
As GCJ ã®ããXNUMXã€ã®ããã³ããšã³ãã§ã gccã®ãgccãšåããªãã·ã§ã³ã®å€ãããµããŒãããŸãã
ãã®ããã¥ã¢ã«ã¯ãã«åºæã®ãªãã·ã§ã³ã®ã¿ãææžåããŠããŸã GCJ.
OPTIONS
å ¥å & åºå ãã¡ã€ã«
A GCJ ã³ãã³ã㯠gccã® ã³ãã³ããããã¯ããã€ãã®ãªãã·ã§ã³ãšãã¡ã€ã«ã§æ§æãããŠããŸã
ååã 次ã®çš®é¡ã®å ¥åãã¡ã€ã«åããµããŒããããŠããŸãã
file.Java
JavaãœãŒã¹ãã¡ã€ã«ã
fileãã¯ã©ã¹
Javaãã€ãã³ãŒããã¡ã€ã«ã
file.zip
fileããžã£ãŒ
XNUMXã€ä»¥äžã®ã.classããã¡ã€ã«ãå«ãã¢ãŒã«ã€ãããããã¯ãã¹ãŠã³ã³ãã€ã«ãããŠããŸãã NS
ã¢ãŒã«ã€ãã¯å§çž®ãããŠããå¯èœæ§ããããŸãã ã§çµãããªãã¢ãŒã«ã€ãå ã®ãã¡ã€ã« ãã¯ã©ã¹ ã
ãªãœãŒã¹ãã¡ã€ã«ãšããŠæ±ãããŸãã ãããã¯ã次ã®ããã«çµæã®ãªããžã§ã¯ããã¡ã€ã«ã«ã³ã³ãã€ã«ãããŸãã è¯ïŒ
URLã
@file
å ¥åãã¡ã€ã«åã®ç©ºçœã§åºåããããªã¹ããå«ããã¡ã€ã«ã ïŒçŸåšãããã
ãã¹ãŠã.javaããœãŒã¹ãã¡ã€ã«ã§ããå¿ èŠããããŸãããå€æŽãããå¯èœæ§ããããŸããïŒååä»ããã¡ã€ã«ã¯ããããã³ã³ãã€ã«ãããŸãã
ãŸãã§ã³ãã³ãã©ã€ã³ã«ãããã®ããã«ã
ã©ã€ãã©ãª.a
ã©ã€ãã©ãªããã
-lã©ã€ãã©ãªå
ãªã³ã¯æã«äœ¿çšããã©ã€ãã©ãªã ãåç §ããŠãã ãã gccã® ããã¥ã¢ã«ã
ã§è€æ°ã®å ¥åãã¡ã€ã«ãæå®ã§ããŸã GCJ ã³ãã³ãã©ã€ã³ããã®å Žåã
ãã¹ãŠã³ã³ãã€ã«ãããŸãã ã-oããæå®ããå Žå ãã¡ã€ã«å" ãªãã·ã§ã³ã®å Žåããã¹ãŠã®å ¥åãã¡ã€ã«ã¯
äžç·ã«ã³ã³ãã€ã«ãããååãä»ããããåäžã®åºåãã¡ã€ã«ãçæãããŸã ãã¡ã€ã«åã ãããèš±å¯ãããŸã
ã-SããŸãã¯ã-cãã䜿çšããå Žåããã ããã-CããŸãã¯ã--resourceãã䜿çšããå Žåã¯äœ¿çšã§ããŸããã ïŒããã¯æ¡åŒµæ©èœã§ã
äœã®å¹³éãè¶ ã㊠gccã® èš±å¯ããŸããïŒïŒè€æ°ã®å ¥åãã¡ã€ã«ãæå®ãããŠããå Žåã¯ããã¹ãŠã
çŸåšã¯ã.javaããã¡ã€ã«ã§ããããããä¿®æ£ããããšèããŠããŸããïŒ
å ¥å ãªãã·ã§ã³
GCJ å¿ èŠãªãã¡ã€ã«ãæ¢ãå Žæãå¶åŸ¡ãããªãã·ã§ã³ããããŸãã äŸãã°ã GCJ ãããããªã
ã³ã³ãã€ã«ãèŠæ±ããããã¡ã€ã«ã«ãã£ãŠåç §ãããã¯ã©ã¹ãããŒãããå¿ èŠããããŸãã ãæ°ã«å ¥ã
Javaèšèªçšã®ä»ã®ã³ã³ãã€ã©ã GCJ ã®æŠå¿µããããŸã class pathã ããã
ã¯ã©ã¹ãã¹ãæäœããããã«äœ¿çšã§ããããã€ãã®ãªãã·ã§ã³ãšç°å¢å€æ°ã
æ¥æ GCJ ç¹å®ã®ã¯ã©ã¹ãæ€çŽ¢ããäžèŽããã¯ã©ã¹ãã¹ãæ€çŽ¢ããŸã ãã¯ã©ã¹
or .Java ãã¡ã€ã«ã«ãœãããŠã§ã¢ãæå®ããå¿ èŠããããŸãã GCJ ã€ã³ã¹ããŒã«ããããã®ãæãçµã¿èŸŒã¿ã®ã¯ã©ã¹ãã¹ãä»å±ããŠããŸã
libgcj.jarããã¹ãŠã®æšæºã¯ã©ã¹ãå«ããã¡ã€ã«ã
以äžã®ããã¹ãã§ã¯ããã£ã¬ã¯ããªãŸãã¯ãã¹ã³ã³ããŒãã³ãã¯å®éã®ãã£ã¬ã¯ããªãåç §ã§ããŸã
ãã¡ã€ã«ã·ã¹ãã äžããŸã㯠.zip or ããžã£ãŒ ãã¡ã€ã«ããã GCJ ãããã§ãããã®ããã«æ€çŽ¢ããŸã
ãã£ã¬ã¯ããªã«ãããŸãã
-IDIR
ã-Iãã§æå®ããããã¹ãŠã®ãã£ã¬ã¯ããªã¯é çªã«ä¿æãããã¯ã©ã¹ãã¹ã®å é ã«è¿œå ãããŸã
ä»ã®ãã¹ãŠã®ãªãã·ã§ã³ããæ§ç¯ãããŸãã ãjavacããªã©ã®ããŒã«ãšã®äºææ§ããªãéã
éèŠã§ããä»ã®ãªãã·ã§ã³ã®ä»£ããã«åžžã«ã-Iãã䜿çšããããšããå§ãããŸãã
ã¯ã©ã¹ãã¹ã®æäœã
--classpath =path
ããã«ãããã¯ã©ã¹ãã¹ãã«èšå®ãããŸã pathããã¹ã®ã³ãã³ã§åºåããããªã¹ãïŒWindowsããŒã¹ã®å ŽåïŒ
ã·ã¹ãã ããã¹ã®ã»ãã³ãã³åºåãã®ãªã¹ãïŒã ããã¯çµã¿èŸŒã¿ããªãŒããŒã©ã€ãããŸãã
ïŒãããŒããïŒæ€çŽ¢ãã¹ã
--CLASSPATH =path
ã--classpathãã®éæšå¥šã®å矩èªã
--bootclasspath =path
ãjava.lang.Stringããªã©ã®æšæºã®çµã¿èŸŒã¿ã¯ã©ã¹ã®å Žæã
--extdirs =path
ã®ãã£ã¬ã¯ããªããšã« pathããã®ãã£ã¬ã¯ããªã®å 容ãæåŸã«é 眮ããŸã
ã¯ã©ã¹ãã¹ã
ã¯ã©ã¹ãã¹
ããã¯ããã¹ã®ãªã¹ããä¿æããç°å¢å€æ°ã§ãã
æçµçãªã¯ã©ã¹ãã¹ã¯æ¬¡ã®ããã«æ§æãããŸãã
*æåã«ã-Iãã§æå®ããããã¹ãŠã®ãã£ã¬ã¯ããªã衚瀺ãããŸãã
* ããã -ã¯ã©ã¹ãã¹ æå®ãããšããã®å€ãè¿œå ãããŸãã ãã以å€ã®å ŽåããCLASSPATHãã®å Žå
ç°å¢å€æ°ãæå®ãããšããã®å€ãè¿œå ãããŸãã ãã以å€ã®å ŽåãçŸåš
ãã£ã¬ã¯ããªïŒ "ã"ïŒãè¿œå ãããŸãã
*ã-bootclasspathããæå®ãããŠããå Žåã¯ããã®å€ãè¿œå ããŸãã ãã以å€ã®å Žåã¯ãçµã¿èŸŒã¿ãè¿œå ããŸã
ã·ã¹ãã ãã£ã¬ã¯ããªã libgcj.jar.
*æåŸã«ãã-extdirsããæå®ãããŠããå Žåã¯ãæå®ãããå 容ãè¿œå ããŸã
ã¯ã©ã¹ãã¹ã®æåŸã«ãããã£ã¬ã¯ããªã ãã以å€ã®å Žåã¯ãã®å 容ãè¿œå ããŸã
ã$ïŒprefixïŒ/ share / java / extãã«ããçµã¿èŸŒã¿ã®extdirã
ã«ãã£ãŠæ§ç¯ãããã¯ã©ã¹ãã¡ã€ã« GCJ ã¯ã©ã¹ãjava.lang.Objectãã®å ŽåïŒããã³ãlibgcj.jarãã«é 眮ãããŸãïŒ
ç¹å¥ãªé·ããŒãã®å±æ§ãgnu.gcj.gcj-compiledããå«ãŸããŠããŸãã ã³ã³ãã€ã©ã¯
ãjava.lang.ObjectããããŒããããšãã«ãã®å±æ§ãèŠã€ãããŸãããèŠã€ãããªãå Žåã¯ãšã©ãŒãå ±åããŸãã
ãã€ãã³ãŒãã«ã³ã³ãã€ã«ãããªãéãïŒãªãã·ã§ã³ã-fforce-classes-archive-checkãã䜿çšããŠ
ãã®ç¹å®ã®å Žåããã®åäœããªãŒããŒã©ã€ãããŸããïŒ
-fforce-classes-archive-check
ããã«ãããã³ã³ãã€ã©ã¯åžžã«ç¹å¥ãªãŒãé·å±æ§ããã§ãã¯ããããã«ãªããŸãã
ãjava.lang.Objectãã®ãgnu.gcj.gcj-compiledãã§ãèŠã€ãããªãå Žåã¯ãšã©ãŒãçºè¡ããŸãã
-fsource =VERSION
ãã®ãªãã·ã§ã³ã¯ãã«ãã£ãŠåãå ¥ãããããœãŒã¹ããŒãžã§ã³ãéžæããããã«äœ¿çšãããŸã GCJã ããã©ã«ã㯠1.5.
ãšã³ã³ãŒãã£ã³ã°
Javaããã°ã©ãã³ã°èšèªã¯å šäœãéããŠUnicodeã䜿çšããŸãã ããŸãçµ±åããããã«
ä»ã®ãã±ãŒã«ã§ã¯ã GCJ ããšãã§ããŸã .Java ã»ãšãã©ãã¹ãŠã®ãšã³ã³ãŒãã£ã³ã°ã䜿çšããŠæžã蟌ãŸãããã¡ã€ã«ã GCJ
ã³ã³ãã€ã«æã«ãããã®ãšã³ã³ãŒãã£ã³ã°ãå éšãšã³ã³ãŒãã£ã³ã°ã«å€æããæ¹æ³ãç¥ã£ãŠããŸãã
ã--encoding =ãã䜿çšã§ããŸãåå" ïŒç¹å®ã®æåã®ïŒãšã³ã³ãŒãã£ã³ã°ãæå®ãããªãã·ã§ã³
setïŒãœãŒã¹ãã¡ã€ã«ã«äœ¿çšããŸãã ãããæå®ãããŠããªãå Žåãããã©ã«ãã®ãšã³ã³ãŒãã£ã³ã°ã¯
çŸåšã®ãã±ãŒã«ã ãã¹ãã·ã¹ãã ã®ãã±ãŒã«ãµããŒããäžååãªå Žåã¯ã GCJ
ããã©ã«ãã®ãšã³ã³ãŒãã£ã³ã°ã¯ UTF-8 Unicodeã®ãšã³ã³ãŒãã£ã³ã°ã
ã--encodingããå®è£ ããã«ã¯ã GCJ ãã¹ããã©ãããã©ãŒã ã®ãiconvãå€æã«ãŒãã³ã䜿çšããã ãã§ãã
ããã¯ãå®éã«ã¯ GCJ ãã¹ããã©ãããã©ãŒã ã®æ©èœã«ãã£ãŠå¶éãããŸãã
åŒæ°ã--encodingãã«äœ¿çšã§ããååã¯ããã©ãããã©ãŒã ããšã«ç°ãªããŸãïŒ
ã©ãã«ãæšæºåãããŠããŸããïŒã ãããã GCJ ååã®ä»ãããšã³ã³ãŒãã£ã³ã°ãå®è£ ããŸã UTF-8
å éšçã«ã¯ãããããœãŒã¹ãã¡ã€ã«ã«äœ¿çšããããšãéžæããå Žåã¯ã確å®ã«äœ¿çšã§ããŸãã
ãã¹ãŠã®ãã¹ãã§åäœããŸãã
èŠå
GCJ ããã€ãã®èŠåãå®è£ ããŸãã ä»ã®ãžã§ããªãã¯ãšåãããã« gccã® èŠåããªãã·ã§ã³ã®å Žå
ãã©ãŒã ã-Wfooãã¯èŠåãæå¹ã«ããã-Wno-fooãã¯èŠåãç¡å¹ã«ããŸãã ããã§ã¯ã
å¹æã®ããèŠåã®åœ¢åŒãææžåããŸããããã©ã«ãã¯
ãªã¹ããããŠãããã®ã®å察ã
-åé·ä¿®é£Ÿå
ãã®æã§ã GCJ åé·ãªä¿®é£Ÿåã«ã€ããŠèŠåããŸãã ããšãã°ãèŠåããŸã
ã€ã³ã¿ãŒãã§ã€ã¹ã¡ãœãããããããªãã¯ããšå®£èšãããŠããå Žåã
-Wextraneous-ã»ãã³ãã³
ããã¯ããã²ãèµ·ãã GCJ 空ã®ã¹ããŒãã¡ã³ãã«ã€ããŠèŠåããŸãã 空ã®ã¹ããŒãã¡ã³ãã¯
éæšå¥šã
-å€ããã®ã§ã¯ãããŸãã
ãã®ãªãã·ã§ã³ã«ããã GCJ ãœãŒã¹ãã¡ã€ã«ãäžèŽãããã®ãããæ°ããå Žåã«èŠåããªã
ã¯ã©ã¹ãã¡ã€ã«ã ããã©ã«ãã§ã¯ GCJ ããã«ã€ããŠèŠåããŸãã
-Wno-éæšå¥š
éæšå¥šã®ã¯ã©ã¹ãã¡ãœããããŸãã¯ãã£ãŒã«ããåç §ãããå Žåã«èŠåããŸãã
-æªäœ¿çš
ããã¯ãšåãã§ã gccã®ã®ã-Wunusedãã
-å£
ããã¯ãã-Wredundant-modifiers-Wextraneous-semicolon-Wunusedããšåãã§ãã
é£çµ
Javaã¢ããªã±ãŒã·ã§ã³ãå®è¡å¯èœããã°ã©ã ã«å€æããã«ã¯ãJavaã¢ããªã±ãŒã·ã§ã³ãå¿ èŠãªãã®ãšãªã³ã¯ããå¿ èŠããããŸã
ã©ã€ãã©ãªãCãŸãã¯C ++ã®å Žåãšåãã§ãã ãªã³ã«ã¯ããã©ã«ãã§ããšããååã®ã°ããŒãã«é¢æ°ãæ¢ããŸã
"äž»èŠ"ã Javaã«ã¯ã°ããŒãã«é¢æ°ããªããããJavaã¯ã©ã¹ã®ã³ã¬ã¯ã·ã§ã³ã¯
ãmainãã¡ãœãããæã€ã¯ã©ã¹ãè€æ°ããå Žåã¯ããªã³ã«ãŒã«æ¬¡ã®ã¯ã©ã¹ãéç¥ããå¿ èŠããããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®èµ·åæã«åŒã³åºãå¿ èŠã®ãããã¡ã€ã³ãã¡ãœããã ããªãã¯ã§ãããè¡ãããšãã§ããŸã
ãããã®æ¹æ³ã®ããããïŒ
*ã¢ããªã±ãŒã·ã§ã³ããªã³ã¯ãããšãã«ãç®çã®ãã¡ã€ã³ãã¡ãœãããå«ãã¯ã©ã¹ãæå®ããŸãã
以äžã§èª¬æããã--mainããã©ã°ã䜿çšããŸãã
* Javaããã±ãŒãžãå®è¡å¯èœãã¡ã€ã«ã§ã¯ãªãå ±æã©ã€ãã©ãªïŒdllïŒã«ãªã³ã¯ããŸãã ããã§
ãgijãããã°ã©ã ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãåŒã³åºãããgijãã
å¿ èŠãªã©ã€ãã©ãªã
*ãã¡ã€ã³ãã«ãŒãã³ã§ãªã³ã¯ãããã©ã°ã-lgijãã䜿çšããŠJavaããã±ãŒãžããªã³ã¯ããŸã
ãgijãã³ãã³ãããã ããã«ããããã¡ã€ã³ãã¡ãœããã䜿çšããã¯ã©ã¹ãéžæã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããšãã«å®è¡ãããã ä»ã®ãgijããã©ã°ã䜿çšããããšãã§ããŸãã
ããããã£ãèšå®ããããã®ã-Dããã©ã°ã ïŒãgijãã§ã¯ãªãã-lgijãã©ã€ãã©ãªã䜿çšãã
åã®ã¡ã«ããºã ã®ããã°ã©ã ïŒã«ã¯ããã€ãã®å©ç¹ããããŸãïŒããã¯éçãšäºææ§ããããŸã
ãªã³ã¯ããã©ã€ãã©ãªãæ§æãŸãã¯ã€ã³ã¹ããŒã«ããå¿ èŠã¯ãããŸããã
ãããã®ãgijããªãã·ã§ã³ã¯ãå®è¡å¯èœãã¡ã€ã«ã®ãªã³ã¯ã«é¢é£ããŠããŸãã
--main =ã¯ã©ã¹å
ãã®ãªãã·ã§ã³ã¯ããmainãã¡ãœãããæã€ã¯ã©ã¹ã®ååãæå®ããããã«ãªã³ã¯ãããšãã«äœ¿çšãããŸã
çµæã®å®è¡å¯èœãã¡ã€ã«ãå®è¡ããããšãã«åŒã³åºãå¿ èŠããããŸãã
-Då[=å€]
ãã®ãªãã·ã§ã³ã¯ãã-mainãã§ã®ã¿äœ¿çšã§ããŸãã ããã¯ããšããååã®ã·ã¹ãã ããããã£ãå®çŸ©ããŸã å
䟡å€ãã å€ã å Žå å€ æå®ãããŠããªãå Žåãããã©ã«ãã§ç©ºã®æååã«ãªããŸãã
ãããã®ã·ã¹ãã ããããã£ã¯ãããã°ã©ã ã®èµ·åæã«åæåãããååŸã§ããŸãã
å®è¡æã«ãjava.lang.System.getPropertyãã¡ãœããã䜿çšããŸãã
-lgij
ã³ãã³ãã©ã€ã³åŠçããgijãã³ãã³ãã®åŠçã§ããã¢ããªã±ãŒã·ã§ã³ãäœæããŸãã
ãã®ãªãã·ã§ã³ã¯ãã-mainãã䜿çšãã代ããã®æ¹æ³ã§ãã äž¡æ¹ã䜿çšããããšã¯ã§ããŸããã
-éç-libgcj
ãã®ãªãã·ã§ã³ã«ãããéçããŒãžã§ã³ã®libgcjã©ã³ã¿ã€ã ã«å¯ŸããŠãªã³ã¯ãå®è¡ãããŸãã
å³æžé€šã ãã®ãªãã·ã§ã³ã¯ã察å¿ãããªã³ã«ãŒãµããŒããååšããå Žåã«ã®ã¿äœ¿çšã§ããŸãã
ãŠã©ãŒã«ã¿ã€ã - libgcjã®éçãªã³ã¯ã«ãããlibgcjã®éèŠãªéšåãçç¥ãããå ŽåããããŸãã
libgcjã®äžéšã¯ãå®è¡æã«ã¯ã©ã¹ãããŒãããããã«ãªãã¬ã¯ã·ã§ã³ã䜿çšããŸãã ãªã³ã«ãŒã¯
ãªã³ã¯æã«ãããã®åç §ã衚瀺ãããªãå Žåã¯ãåç §ãããã¯ã©ã¹ãçç¥ã§ããŸãã NS
çµæã¯éåžžïŒåžžã«ã§ã¯ãããŸãããïŒå®è¡æã«ã¹ããŒããããClassNotFoundExceptionãã§ãã
ãã®ãªãã·ã§ã³ã䜿çšããå Žåã¯æ³šæãå¿ èŠã§ãã 詳现ã«ã€ããŠã¯ã以äžãåç §ããŠãã ããã
<http://gcc.gnu.org/wiki/StaticallyïŒ 20linkingïŒ 20libgcj>
Code äžä»£
å€ãã«å ã㊠gccã® ã³ãŒãçæãå¶åŸ¡ãããªãã·ã§ã³ã GCJ ããã€ãã®ãªãã·ã§ã³ããããŸã
ããèªäœã«åºæã§ãã
-C ãã®ãªãã·ã§ã³ã¯ã次ã®ããã«äŒããããã«äœ¿çšãããŸã GCJ ãã€ãã³ãŒããçæããã«ã¯ïŒãã¯ã©ã¹ ãã¡ã€ã«ïŒãªããžã§ã¯ãã§ã¯ãªã
ã³ãŒââãã
- è³æº ãªãœãŒã¹å
ãã®ãªãã·ã§ã³ã¯ã次ã®ããã«äŒããããã«äœ¿çšãããŸã GCJ ç¹å®ã®ãã¡ã€ã«ã®å 容ããªããžã§ã¯ãã³ãŒãã«ã³ã³ãã€ã«ããŸã
ãããã£ãŠãå®è¡æã«ã³ã¢ãããã³ã«ãã³ãã©ã䜿çšããŠã¢ã¯ã»ã¹ã§ããŸãã è¯ïŒ/è³æº-
åã ãäºæ¿ãã ãã ãªãœãŒã¹å å®è¡æã«æ€åºããããªãœãŒã¹ã®ååã§ãã ã«ãšã£ãŠ
ããšãã°ããResourceBundle.getBundleãã®åŒã³åºãã§äœ¿çšã§ããŸãã å®éã®ãã¡ã€ã«
ãã®æ¹æ³ã§ã³ã³ãã€ã«ããååã¯ãåå¥ã«æå®ããå¿ èŠããããŸãã
-ftarget =VERSION
ããã¯ã§äœ¿çšããããšãã§ããŸã -C ã«ãã£ãŠçºè¡ããããã€ãã³ãŒãã®ããŒãžã§ã³ãéžæããã«ã¯ GCJãéžæããŸãã
ããã©ã«ã㯠1.5ã ãã€ãã³ãŒããçæããªãå Žåããã®ãªãã·ã§ã³ã¯å¹æããããŸããã
-d ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã
ã-Cããšäžç·ã«äœ¿çšãããšããã¹ãŠãçæãããŸã ãã¯ã©ã¹ ã«å ¥ãããã¡ã€ã«
ã®é©åãªãµããã£ã¬ã¯ã㪠ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸããã ããã©ã«ãã§ã¯ããµããã£ã¬ã¯ããªã«é 眮ãããŸã
çŸåšã®äœæ¥ãã£ã¬ã¯ããªã®ã
-fno-bounds-ãã§ãã¯
ããã©ã«ãã§ã¯ã GCJ ãã¹ãŠã®é åã€ã³ããã¯ã¹ã®å¢çããã§ãã¯ããã³ãŒããçæããŸã
ãªãã¬ãŒã·ã§ã³ã ãã®ãªãã·ã§ã³ã䜿çšãããšããããã®ãã§ãã¯ãçç¥ãããããã©ãŒãã³ã¹ãåäžããå¯èœæ§ããããŸã
é åãåºç¯å²ã«äœ¿çšããã³ãŒãã®å Žåã ããã«ãããäºæž¬ã§ããªãçµæã«ãªãå¯èœæ§ãããããšã«æ³šæããŠãã ãã
åé¡ã®ã³ãŒããå®éã«é åå¢çã®å¶çŽã«éåããŠããå Žåã®åäœã ãã
ã³ãŒãã決ããŠã¹ããŒããªãããšã確å®ãªå Žåã¯ããã®ãªãã·ã§ã³ã䜿çšããŠãå®å šã§ã
ãArrayIndexOutOfBoundsExceptionãã
-fno-store-check
é åã¹ãã¢ãã§ãã¯ãçæããªãã§ãã ããã ãªããžã§ã¯ããé åã«æ ŒçŽããå Žåãã©ã³ã¿ã€ã ãã§ãã¯
éåžžããªããžã§ã¯ããå²ãåœãŠãšäºææ§ãããããšã確èªããããã«çæãããŸã
é åã®ã³ã³ããŒãã³ãã¿ã€ãïŒã³ã³ãã€ã«æã«èªèãããªãå ŽåããããŸãïŒã ãããšãšãã«
ãªãã·ã§ã³ã®å Žåããããã®ãã§ãã¯ã¯çç¥ãããŸãã ããã«ãããä¿åããã³ãŒãã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸã
ãªããžã§ã¯ããé »ç¹ã«é åã«å ¥ããŸãã 確信ãããå Žåã¯ããã®ãªãã·ã§ã³ã䜿çšããŠãå®å šã§ãã
ã³ãŒãããArrayStoreExceptionããã¹ããŒããããšã¯ãããŸããã
-fjni
GCJ ãã€ãã£ãã¡ãœãããäœæããã«ã¯ãCNIãšJNIã®XNUMXã€ã®ãªãã·ã§ã³ããããŸãã ããã©ã«ãã§ã¯
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-ããŒã -gc
ããã«ãããBoehmGCããããããããŒãã³ã°ã³ãŒãã䜿çšã§ããããã«ãªããŸãã ç¹ã«ããã¯åå ã§ã
GCJ ãªããžã§ã¯ãããŒãã³ã°èšè¿°åãåvtableã«é 眮ããŸãã
-fhash-åæ
ããã©ã«ãã§ã¯ãåæããŒã¿ïŒãåæãããåŸ æ©ããããã³
ãéç¥ãïŒã¯ãåãªããžã§ã¯ãå ã®åèªã«ãã£ãŠç€ºãããŸãã ãã®ãªãã·ã§ã³ã§ GCJ ãšä»®å®ããŸã
ãã®æ å ±ã¯ããªããžã§ã¯ãèªäœã§ã¯ãªããããã·ã¥ããŒãã«ã«æ ŒçŽãããŸãã
-ãã¥ãŒãº-åå²-ãµãã«ãŒãã³
äžéšã®ã·ã¹ãã ã§ã¯ãæŽæ°é€ç®ãå®è¡ããããã«ã©ã€ãã©ãªã«ãŒãã³ãåŒã³åºãããŸãã ããã¯
ãŒãé€ç®æã«äŸå€åŠçãæ£ããè¡ãããã«å¿ èŠã§ãã
-fcheck-åç §
äžéšã®ã·ã¹ãã ã§ã¯ããªããžã§ã¯ãã«ã¢ã¯ã»ã¹ãããã³ã«ã€ã³ã©ã€ã³ãã§ãã¯ãæ¿å ¥ããå¿ èŠããããŸã
åç §ãä»ããŠã ä»ã®ã·ã¹ãã ã§ã¯ãnullãã€ã³ã¿ãã¢ã¯ã»ã¹ãããããããã¯å¿ èŠãããŸããã
ããã»ããµã«ãã£ãŠèªåçã«ãã£ãããããŸãã
-fuse-atomic-builtins
äžéšã®ã·ã¹ãã ã§ã¯ãGCCã¯çµã¿èŸŒã¿ã®ã¢ãããã¯æäœçšã®ã³ãŒããçæã§ããŸãã ããã䜿ã£ãŠ
Javaã³ãŒããã³ã³ãã€ã«ãããšãã«gcjããããã®ãã«ãã€ã³ã䜿çšããããã«åŒ·å¶ãããªãã·ã§ã³ã ããã¯ã©ã
æ©èœãååšããå Žåã¯èªåçã«æ€åºããããããéåžžã¯å¿ èŠãããŸãã
ãã®ãªãã·ã§ã³ã䜿çšããŸãã
onworks.netãµãŒãã¹ã䜿çšããŠmips64-linux-gnuabi64-gcjããªã³ã©ã€ã³ã§äœ¿çšãã