āļāļĩāđāļāļ·āļāļāļģāļŠāļąāđāļ ajc āļāļĩāđāļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāđāļāđāđāļāļāļđāđāđāļŦāđāļāļĢāļīāļāļēāļĢāđāļŪāļŠāļāđāļāļĢāļĩāļāļāļ OnWorks āđāļāļĒāđāļāđāđāļ§āļīāļĢāđāļāļŠāđāļāļāļąāļāļāļāļāđāļĨāļāđāļāļĢāļĩāļāļāļāđāļĢāļē āđāļāđāļ Ubuntu Online, Fedora Online, āđāļāļĢāđāļāļĢāļĄāļāļģāļĨāļāļāļāļāļāđāļĨāļāđāļāļāļ Windows āļŦāļĢāļ·āļāđāļāļĢāđāļāļĢāļĄāļāļģāļĨāļāļāļāļāļāđāļĨāļāđāļāļāļ MAC OS
āđāļāļĢāļāļāļēāļĢ:
āļāļ·āđāļ
ajc â āļāļāļĄāđāļāđāļĨāļāļĢāđāđāļĨāļ° bytecode weaver āļŠāļģāļŦāļĢāļąāļāļ āļēāļĐāļē AspectJ āđāļĨāļ° Java
āđāļĢāļ·āđāļāļāļĒāđāļ
AJC [ Options] [āđāļāļĨāđ... - -āđāļāļĨāđ... - -argfile āđāļāļĨāđ... ]
āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļ
āļāļ·āđāļāļāļĩāđ AJC āļāļģāļŠāļąāđāļāļāļāļĄāđāļāļĨāđāđāļĨāļ°āļŠāļēāļāđāļāļĨāđāļāļāļĢāđāļŠ AspectJ āđāļĨāļ° Java āđāļĨāļ°āđāļāļĨāđ .class āļāļēāļĢāļāļĨāļīāļ
āđāļāļĨāđ .class āļāļĩāđāđāļāđāļēāļāļąāļāđāļāđāļāļąāļ Java VM (1.1 āļŦāļĢāļ·āļāđāļŦāļĄāđāļāļ§āđāļē) āļĄāļąāļāļĢāļ§āļĄāļāļēāļĢāļĢāļ§āļāļĢāļ§āļĄāđāļĨāļ°
bytecode āļāļāđāļĨāļ°āļĢāļāļāļĢāļąāļāļāļīāļĨāļāđāļāļĩāđāđāļāļīāđāļĄāļāļķāđāļ; āļāļļāļāļĒāļąāļāļŠāļēāļĄāļēāļĢāļāļŠāļēāļ bytecode āļāļĩāđāļĢāļąāļāđāļāļĄāđ
āļāļēāļĢāđāļāđ "" >.
āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļŦāļĨāļąāļāļāļēāļāļāļąāļ§āđāļĨāļ·āļāļāļĢāļ°āļāļļāđāļāļĨāđāļāđāļāļāļāļąāļāļāļĩāđāļāļ°āļāļāļĄāđāļāļĨāđ āđāļāļ·āđāļāļĢāļ°āļāļļāđāļŦāļĨāđāļāļāļĩāđāļĄāļē
āļāļĨāļēāļŠ āđāļāđ -inpath (āļāđāļēāļāļĨāđāļēāļ). āđāļāļĨāđāļāļēāļāđāļŠāļāļāļĢāļēāļĒāļāļēāļĢāđāļāļĒāļāļĢāļāļāļāļāļĢāļĢāļāļąāļāļāļģāļŠāļąāđāļāļŦāļĢāļ·āļāđāļ a
āđāļāļĨāđ. -argfile āđāļāļĨāđ āđāļĨāļ° @āđāļāļĨāđ āļĢāļđāļāđāļāļāđāļāļĩāļĒāļāđāļāđāļēāđāļĨāļ°āļāļĩāļāļ§āļēāļĄāļ§āđāļēāđāļāđāļāļāļ§āļēāļĄāļŦāļĄāļēāļĒ
āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļąāđāļāļŦāļĄāļāļāļĩāđāļĢāļ°āļāļļāđāļ§āđāđāļāđāļāļĨāđāļāļĩāđāļĢāļ°āļāļļ
āļŦāļĄāļēāļĒāđāļŦāļāļļ āļāļļāļāļāđāļāļāļāđāļēāļāļāļĒāđāļēāļāļāļąāļāđāļāļ AJC āđāļŦāļĨāđāļāļāđāļāļĄāļđāļĨāļāļĩāđāļāļģāđāļāđāļāļāļąāđāļāļŦāļĄāļ āļāļĒāđāļēāļĨāļ·āļĄāđāļŠāđāđāļŦāļĨāđāļāļāļĩāđāļĄāļē
āđāļĄāđāđāļāļĩāļĒāļāđāļāđāļŠāļģāļŦāļĢāļąāļāļĨāļąāļāļĐāļāļ°āļŦāļĢāļ·āļ pointcuts āđāļāđāļŠāļģāļŦāļĢāļąāļāļāļĢāļ°āđāļ āļāļāļĩāđāđāļāđāļĢāļąāļāļāļĨāļāļĢāļ°āļāļāļāđāļ§āļĒ āļĢāļ°āļāļļāļāļąāđāļāļŦāļĄāļ
source āļĄāļĩāļāļ§āļēāļĄāļāļģāđāļāđāļāđāļāļĢāļēāļ°āđāļĄāđāđāļŦāļĄāļ·āļāļāļāļąāļ javac, ajc āļāļ°āđāļĄāđāļāđāļāļŦāļē sourcepath āļŠāļģāļŦāļĢāļąāļ
āļāļąāđāļāđāļĢāļĩāļĒāļ (āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļ āļīāļāļĢāļēāļĒāđāļāļĩāđāļĒāļ§āļāļąāļāļāļĢāļ°āđāļ āļāļāļĩāđāđāļāđāļĢāļąāļāļāļĨāļāļĢāļ°āļāļ āđāļŦāđāļāļđāļāļĩāđ āļāļ·āđāļāļāļĩāđ āļĄāļļāļĄāļĄāļāļJ
āļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄ āļāļđāđāļĄāļ·āļ āļāļēāļĢāļāļģāđāļāļīāļāļāļēāļ āļ āļēāļāļāļāļ§āļ ../progguide/implementation.html) .
āđāļāļāļēāļĢāļĢāļ°āļāļļāđāļŦāļĨāđāļāļāļĩāđāļĄāļē āļāļļāļāļŠāļēāļĄāļēāļĢāļāđāļŠāļāļāļĢāļēāļĒāļāļēāļĢāđāļāļĨāđāļāđāļāļāļāļąāļāđāļāđāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļŦāļĢāļ·āļāđāļāđāļāļąāļ§āđāļĨāļ·āļāļ -āļāđāļāļāļēāļ
or -inpath. āļŦāļēāļāļĄāļĩāļŦāļĨāļēāļĒāđāļŦāļĨāđāļāļāļĩāđāļĄāļēāļŠāļģāļŦāļĢāļąāļāļāļĢāļ°āđāļ āļāđāļ āđ āļāļĨāļĨāļąāļāļāđāļāļ°āđāļĄāđāļāļđāļāļāļģāļŦāļāļāļāļąāđāļāđāļāđ ajc
āđāļĄāđāļĄāļĩāļāļēāļāļāļąāļāļŠāļīāļāđāļāđāļ§āđāļēāđāļŦāļĨāđāļāđāļāļāļđāļāļāđāļāļ (āļŠāļīāđāļāļāļĩāđāđāļāļīāļāļāļķāđāļāļāđāļāļĒāļāļĩāđāļŠāļļāļāđāļĄāļ·āđāļāļāļđāđāđāļāđ
āļĢāļ§āļĄāđāļāđāļĢāđāļāļāļāļĢāļĩāļāļĨāļēāļĒāļāļēāļāđāļ inpath āđāļĨāļ°āļŠāļĢāđāļēāļāđāļŦāļĄāđ)
Options
-āļāļīāļāļāļēāļĢāđ JarList
āđāļĨāļīāļāđāļāđāđāļĨāđāļ§: āļāļąāđāļāđāļāđ 1.2 āđāļāđ -inpath āļāļķāđāļāļĢāļąāļāđāļāđāļĢāļāļāļāļĢāļĩāļāđāļ§āļĒ
-inpath āđāļŠāđāļāļāļēāļ
āļĒāļāļĄāļĢāļąāļāļāļāļĢāđāļŠ bytecode āđāļ āđ āđāļāļĨāđ .class āđāļāļāļĨāļĨāļąāļāļāđāļāļ°āļĢāļ§āļĄāđāļāļĨāđāđāļŦāļĨāđāļēāļāļĩāđ
āļāļąāđāļāđāļĢāļĩāļĒāļ āļāļēāļāļāļ°āđāļāđāļāļāļēāļĢāļāļāļāđāļ§āļĒāļĨāļąāļāļĐāļāļ°āļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļāđāļāđ āđāļŠāđāļāļāļēāļāđāļāļĩāļĒāļ§
āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļĩāđāļĄāļĩāļĢāļēāļĒāļāļēāļĢāļāļēāļāđāļāļĒāļąāļāđāļāļĨāđ zip āļŦāļĢāļ·āļāđāļāđāļĢāđāļāļāļāļĢāļĩ āļāļąāđāļāļāđāļ§āļĒ
āļāļąāļ§āļāļąāđāļāļāļēāļāđāļāļāļēāļ°āđāļāļĨāļāļāļāļĢāđāļĄ
-Aspectpath āđāļŠāđāļāļāļēāļ
āļŠāļēāļāļĨāļąāļāļĐāļāļ°āđāļāļāļēāļĢāļĩāļāļēāļāđāļāļĨāđ jar āđāļĨāļ°āđāļāđāļĢāđāļāļāļāļĢāļĩāļāļāļāļēāļāđāļāļĒāļąāļāđāļŦāļĨāđāļāļāļĩāđāļĄāļēāļāļąāđāļāļŦāļĄāļ
āļĨāļąāļāļĐāļāļ°āļāļĩāđāļāļ§āļĢāđāļāđāļĢāļąāļāļāļēāļĢāļŠāđāļāļāļāļāđāļāļĒāļāļāļĄāđāļāđāļĨāļāļĢāđāļĢāļļāđāļāđāļāļĩāļĒāļ§āļāļąāļ āđāļĄāļ·āđāļāđāļŦāļĢāđ
āļāļēāļĢāļĢāļąāļāļāļĨāļēāļŠāđāļāļēāļāđāļāļļāļ run classpath āļāļ§āļĢāļĄāļĩ widthpath . āļāļąāđāļāļŦāļĄāļ
āļĢāļēāļĒāļāļēāļĢ. āđāļŠāđāļāļāļēāļ āđāļāđāļāđāļāļĩāļĒāļ§āļāļąāļ classpath āđāļāđāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāđāļāļĩāļĒāļ§āļāļĩāđāļĄāļĩāļĢāļēāļĒāļāļēāļĢāļāļāļāđāļŠāđāļāļāļēāļ
āđāļāļĒāļąāļāđāļāļĨāđ jar āļāļąāđāļāļāđāļ§āļĒāļāļąāļ§āļāļąāđāļ classpath āđāļāļāļēāļ°āđāļāļĨāļāļāļāļĢāđāļĄ
-argfile āđāļāļ·āđāļāđāļĄāđāļĄāļĩāļĄāļąāļ
āđāļāļĨāđāļĄāļĩāļĢāļēāļĒāļāļēāļĢāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļĩāđāļāļąāđāļāļāđāļ§āļĒāļāļĢāļĢāļāļąāļ āđāļāđāļĨāļ°āļāļĢāļĢāļāļąāļāđāļāđāļāļĨāđ
āļāļ§āļĢāļĄāļĩāļŦāļāļķāđāļāļāļąāļ§āđāļĨāļ·āļāļ āļāļ·āđāļāđāļāļĨāđ āļŦāļĢāļ·āļāļŠāļāļĢāļīāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđ (āđāļāđāļ classpath āļŦāļĢāļ·āļ
āļāļīāļāļāļēāļ) āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļĩāđāļāđāļēāļāļāļēāļāđāļāļĨāđāļāļ°āļāļđāļāđāļāļĢāļāļĨāļāđāļāļĢāļēāļĒāļāļēāļĢāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļŠāļģāļŦāļĢāļąāļ
āļāļģāļŠāļąāđāļ āđāļŠāđāļāļāļēāļāļŠāļąāļĄāļāļąāļāļāđāđāļāđāļāļĨāđāļāļģāļāļ§āļāļāļēāļāđāļāđāļĢāđāļāļāļāļĢāļĩ
āļĄāļĩāđāļāļĨāđ (āđāļĄāđāđāļāđāđāļāđāļĢāđāļāļāļāļĢāļĩāļāļēāļĢāļāļģāļāļēāļāļāļąāļāļāļļāļāļąāļ) āļāļ§āļēāļĄāļāļīāļāđāļŦāđāļāđāļāđāļāđāļāļĩāļĒāļ§āļāļąāļāđāļ Java
āđāļĢāļīāđāļĄāļāļąāļ // āđāļĨāļ°āļāļĒāļēāļĒāđāļāļāļāļŠāļļāļāļāļĨāļēāļĒāļŠāļēāļĒ āļāļąāļ§āđāļĨāļ·āļāļāļāļĩāđāļĢāļ°āļāļļāđāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđ
āđāļāļĨāđāļāļēāļāđāļāļāļāļĩāđāđāļāļāļāļĩāđāļāļ°āļāļĒāļēāļĒāļāđāļēāļāļąāļ§āđāļĨāļ·āļāļāļāļĩāđāļĄāļĩāļāļĒāļđāđ āļāļąāļāļāļąāđāļāđāļŦāđāļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļ
āļĢāļ°āļāļļāļāļąāļ§āđāļĨāļ·āļāļāđāļāđāļ -āļāļĨāļēāļŠāļāļēāļ āđāļāđāļāļĨāđāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļķāđāļāđāļāļāļāđāļēāļāļāļēāļ
āđāļāļĨāđāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāđāļāđāļāļāđāļāļāļģāļŦāļāļāđāļāļāļēāļ°āļāļīāļĨāļāđāđāļāđāļēāļāļąāđāļ āđāļāļāļāļāļĢāđāļĄ @āđāļāļĨāđ āđāļāđāļāđāļāđāļāđāļāļĩāļĒāļ§āļāļąāļ
āļĢāļ°āļāļļ -argfile āđāļāļĨāđ.
-āļāļāļāļāļē āđāļāļēāļāđāļāļļāļ.āđāļ
āđāļŠāđāļāļĨāļēāļŠāđāļāļēāļāđāļāļļāļāđāļāđāļāļĨāđ zip output.jar
-outxml āļŠāļĢāđāļēāļāđāļāļĨāđ aop.xml āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļāļāđāļēāđāļ§āļĨāļēāđāļŦāļĨāļāļāđāļ§āļĒāļāļ·āđāļāđāļĢāļīāđāļĄāļāđāļ
-outxmlfile āļāļģāļŦāļāļāđāļāļ/aop.xml
āļŠāļĢāđāļēāļāđāļāļĨāđ aop.xml āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļāļāđāļēāđāļ§āļĨāļēāđāļŦāļĨāļāļāđāļ§āļĒāļāļ·āđāļāļāļĩāđāļāļģāļŦāļāļāđāļāļ
- āđāļāļīāđāļĄāļāļķāđāļ
āļĢāļąāļāļāļāļĄāđāļāđāļĨāļāļĢāđāļāļĒāđāļēāļāļāđāļāđāļāļ·āđāļāļ āļŦāļĨāļąāļāļāļēāļāļāļēāļĢāļāļāļĄāđāļāļĨāđāđāļĢāļīāđāļĄāļāđāļ āļāļāļĄāđāļāđāļĨāļāļĢāđāļāļ°
āļĢāļāļāļāļĄāđāļāļĨāđāđāļŦāļĄāđāļāļāļāļ§āđāļēāļāļ°āļāđāļēāļāļāļĢāļĢāļāļąāļāđāļŦāļĄāđāļāļēāļāļāļīāļāļāļļāļāļĄāļēāļāļĢāļāļēāļāđāļĨāļ° will
āļāļāļāđāļĄāļ·āđāļāļāđāļēāļ 'q' āļĄāļąāļāļāļ°āļāļāļĄāđāļāļĨāđāļŠāđāļ§āļāļāļĢāļ°āļāļāļāļāļĩāđāļāļģāđāļāđāļāđāļŦāļĄāđāđāļāđāļēāļāļąāđāļ āļāļąāļāļāļąāđāļ a
āļāļāļĄāđāļāļĨāđāđāļŦāļĄāđāļāļ§āļĢāļāļ°āđāļĢāđāļ§āļāļ§āđāļēāļāļēāļĢāļāļāļĄāđāļāļĨāđāļāļĩāđāļŠāļāļāļĄāļēāļ āļŠāļīāđāļāļāļĩāđāļāđāļāļāļāļēāļĢ
- āļĢāļēāļāļāđāļāļāļēāļ
-āļāđāļāļāļēāļ DirPaths
āļāđāļāļŦāļēāđāļĨāļ°āļŠāļĢāđāļēāļāđāļāļĨāđāļāđāļāļāļāļąāļ .java āļŦāļĢāļ·āļ .aj āļāļąāđāļāļŦāļĄāļāļ āļēāļĒāđāļāđāđāļāđāļĢāđāļāļāļāļĢāļĩāđāļ āđ āļāļĩāđāļĢāļ°āļāļļāđāļ§āđāđāļ
āđāļāļĢāđāļāļēāļāļŠāđ. DirPaths āđāļāđāļ classpath āđāļāđāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāđāļāļĩāļĒāļ§āļāļĩāđāļĄāļĩāļĢāļēāļĒāļāļēāļĢāļāļāļ
āļāļēāļāđāļāļĒāļąāļāđāļāđāļĢāđāļāļāļāļĢāļĩ āļāļąāđāļāļāđāļ§āļĒāļāļąāļ§āļāļąāđāļāļāļĨāļēāļŠāļāļēāļāđāļāļāļēāļ°āđāļāļĨāļāļāļāļĢāđāļĄ
āļāđāļāļāļāļēāļĢāđāļāļĒ -incremental
-crossrefs
āļŠāļĢāđāļēāļāđāļāļĨāđ build .ajsym āļĨāļāđāļāđāļāđāļĢāđāļāļāļāļĢāļĩāđāļāļēāļāđāļāļļāļ āđāļāđāļŠāļģāļŦāļĢāļąāļāļāļđ
āļāļēāļĢāļāđāļēāļāļāļīāļāđāļāļ§āđāđāļāļĒāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāđāļēāļāđ āđāļāđāļ AspectJ Browser
-emacssym āļŠāļĢāđāļēāļāđāļāļĨāđāļŠāļąāļāļĨāļąāļāļĐāļāđ .ajesym āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļāļąāļāļŠāļāļļāļ emacs (āđāļĨāļīāļāđāļāđāđāļĨāđāļ§)
-Xlint āđāļŦāļĄāļ·āļāļāļāļąāļ -Xlint:warning (āđāļāļīāļāđāļāđāļāļēāļāđāļāļĒāļāđāļēāđāļĢāļīāđāļĄāļāđāļ)
-Xlint:{āļĢāļ°āļāļąāļ}
āļāļąāđāļāļāđāļēāļĢāļ°āļāļąāļāđāļĢāļīāđāļĄāļāđāļāļŠāļģāļŦāļĢāļąāļāļāđāļāļāļ§āļēāļĄāđāļāļĩāđāļĒāļ§āļāļąāļāļāđāļāļāļīāļāļāļĨāļēāļāđāļāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļēāļāđāļāļīāļāļāļķāđāļāđāļ
āļĢāļŦāļąāļŠāļāļąāļāļāļ§āļēāļ {level} āļāļēāļāļāļđāļāļĨāļ°āđāļ§āđāļ āļāļģāđāļāļ·āļāļ āļŦāļĢāļ·āļāļāđāļāļāļīāļāļāļĨāļēāļ āļŠāļīāđāļāļāļĩāđāđāļāļāļāļĩāđ
āļĢāļēāļĒāļāļēāļĢāđāļ org/aspectj/weaver/XlintDefault.properties āļāļēāļ widthjtools.jar āđāļāđ
āđāļĄāđāđāļāļāļāļĩāđāļĢāļ°āļāļąāļāļāļĩāđāļāļģāļŦāļāļāđāļāļĒāđāļāđāļāļąāļ§āđāļĨāļ·āļāļ -Xlintfile
-Xlintfile āļāļļāļāļŠāļĄāļāļąāļāļīāđāļāļĨāđ
āļĢāļ°āļāļļāđāļāļĨāđāļāļļāļāļŠāļĄāļāļąāļāļīāđāļāļ·āđāļāļāļģāļŦāļāļāļĢāļ°āļāļąāļāļŠāļģāļŦāļĢāļąāļāļāđāļāļāļ§āļēāļĄāļāļąāļāļāļ§āļēāļāđāļāļāļēāļ°
PropertyFile āđāļāđāļāļāļēāļāđāļāļĒāļąāļāđāļāļĨāđ Java .properties āļāļĩāđāđāļāđāļāļļāļāļŠāļĄāļāļąāļāļīāđāļāļĩāļĒāļ§āļāļąāļ
āļāļ·āđāļāđāļĨāļ°āļāđāļēāđāļāđāļ org/aspectj/weaver/XlintDefault.properties from
widthjtools.jar āļāļķāđāļāđāļāļāļāļĩāđāļāđāļ§āļĒ
-help āļāļĨāđāļāļĒāļāđāļāļĄāļđāļĨāđāļāļĩāđāļĒāļ§āļāļąāļāļāļąāļ§āđāļĨāļ·āļāļāļāļāļĄāđāļāđāļĨāļāļĢāđāđāļĨāļ°āļāļēāļĢāđāļāđāļāļēāļ
-version āļāļĨāđāļāļĒāđāļ§āļāļĢāđāļāļąāļāļāļāļāļāļāļĄāđāļāđāļĨāļāļĢāđ AspectJ
-āļāļĨāļēāļŠāļāļēāļ āđāļŠāđāļāļāļēāļ
āļĢāļ°āļāļļāļāļģāđāļŦāļāđāļāļāļĩāđāļāļ°āļāđāļāļŦāļēāđāļāļĨāđāļāļĨāļēāļŠāļāļđāđāđāļāđ āđāļŠāđāļāļāļēāļāđāļāđāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāđāļāļĩāļĒāļ§āļāļĩāđāļĄāļĩ a
āļĢāļēāļĒāļāļēāļĢāļāļēāļāđāļāļĒāļąāļāđāļāļĨāđ zip āļŦāļĢāļ·āļāđāļāđāļĢāđāļāļāļāļĢāļĩ āļāļąāđāļāļāđāļ§āļĒāđāļāļāļēāļ°āđāļāļĨāļāļāļāļĢāđāļĄ
āļāļąāļ§āļāļąāđāļāđāļŠāđāļāļāļēāļ
-bootclasspath āđāļŠāđāļāļāļēāļ
āđāļāļāļāļĩāđāļāļģāđāļŦāļāđāļāļāļāļ bootclasspath āļāļāļ VM āđāļāļ·āđāļāļ§āļąāļāļāļļāļāļĢāļ°āļŠāļāļāđāđāļāļāļēāļĢāļāļĢāļ°āđāļĄāļīāļāļāļĢāļ°āđāļ āļāđāļĄāļ·āđāļ
āļāļēāļĢāļĢāļ§āļāļĢāļ§āļĄ āđāļŠāđāļāļāļēāļāđāļāđāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāđāļāļĩāļĒāļ§āļāļĩāđāļĄāļĩāļĢāļēāļĒāļāļēāļĢāļāļēāļāđāļāļĒāļąāļāđāļāļĨāđ zip āļŦāļĢāļ·āļ
āđāļāđāļĢāđāļāļāļāļĢāļĩ āļāļąāđāļāļāđāļ§āļĒāļāļąāļ§āļāļąāđāļāļāļēāļāđāļāļāļēāļ°āđāļāļĨāļāļāļāļĢāđāļĄ
-extdirs āđāļŠāđāļāļāļēāļ
āđāļāļāļāļĩāđāļāļģāđāļŦāļāđāļāļāļāļāđāļāđāļĢāđāļāļāļāļĢāļĩāļŠāđāļ§āļāļāļĒāļēāļĒāļāļāļ VM āđāļāļ·āđāļāļ§āļąāļāļāļļāļāļĢāļ°āļŠāļāļāđāđāļāļāļēāļĢāļāļĢāļ°āđāļĄāļīāļāļāļĢāļ°āđāļ āļ
āđāļĄāļ·āđāļāļĢāļ§āļāļĢāļ§āļĄ āđāļŠāđāļāļāļēāļāđāļāđāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāđāļāļĩāļĒāļ§āļāļĩāđāļĄāļĩāļĢāļēāļĒāļāļēāļĢāđāļŠāđāļāļāļēāļāđāļāļĒāļąāļ
āđāļāđāļĢāđāļāļāļāļĢāļĩ āļāļąāđāļāļāđāļ§āļĒāļāļąāļ§āļāļąāđāļāļāļēāļāđāļāļāļēāļ°āđāļāļĨāļāļāļāļĢāđāļĄ
-d āļāđāļāļŦāļēāļŠāļāļēāļāļāļĩāđ
āļĢāļ°āļāļļāļāļģāđāļŦāļāđāļāļāļĩāđāļāļ°āļ§āļēāļāđāļāļĨāđ .class āļāļĩāđāļŠāļĢāđāļēāļāļāļķāđāļ āļŦāļēāļāđāļĄāđāļĢāļ°āļāļļ āļāđāļāļŦāļēāļŠāļāļēāļāļāļĩāđ
āļāđāļēāđāļĢāļīāđāļĄāļāđāļāđāļāđāļ dir āļāļģāļāļēāļāļāļąāļāļāļļāļāļąāļ
- āđāļāđāļēāļŦāļĄāļēāļĒ [1.1 āđāļāļĒāļąāļ 1.5]
āļĢāļ°āļāļļāļāļēāļĢāļāļąāđāļāļāđāļēāđāļāđāļēāļŦāļĄāļēāļĒ classfile (1.1 āļāļķāļ 1.5 āļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļ·āļ 1.2)
-1.3 āļāļąāđāļāļāđāļēāļĢāļ°āļāļąāļāļāļ§āļēāļĄāļŠāļāļāļāļĨāđāļāļāđāļāđāļ 1.3 āļāļķāđāļāļŦāļĄāļēāļĒāļāļķāļ -source 1.3 āđāļĨāļ° -target 1.1
-1.4 āļāļąāđāļāļāđāļēāļĢāļ°āļāļąāļāļāļ§āļēāļĄāļŠāļāļāļāļĨāđāļāļāđāļāđāļ 1.4 (āļāđāļēāđāļĢāļīāđāļĄāļāđāļ) āļāļķāđāļāļŦāļĄāļēāļĒāļāļķāļ -source 1.4 āđāļĨāļ° -target 1.2
-1.5 āļāļąāđāļāļāđāļēāļĢāļ°āļāļąāļāļāļ§āļēāļĄāļŠāļāļāļāļĨāđāļāļāđāļāđāļ 1.5 āļāļĩāđāļŦāļĄāļēāļĒāļāļķāļ -source 1.5 āđāļĨāļ° -target 1.5
āļāļĩāđāļĄāļē- [1.3|1.4|1.5]
āļāļēāļĢāļĒāļ·āļāļĒāļąāļāđāļāļāļŠāļĨāļąāļ (1.3, 1.4 āļŦāļĢāļ·āļ 1.5 - āļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļ·āļ 1.4) āđāļĄāļ·āđāļāđāļāđ -source 1.3
āļāļģāļŠāļąāđāļ assert() āļāļĩāđāļāļđāļāļāđāļāļāļ āļēāļĒāđāļāđ Java 1.4 āļāļ°āļŠāđāļāļāļĨāđāļŦāđāđāļāļīāļāļāđāļāļāļīāļāļāļĨāļēāļāļāļāļāļāļāļĄāđāļāđāļĨāļāļĢāđ
āđāļĄāļ·āđāļāđāļāđ -source 1.4 āđāļŦāđāļĢāļąāļāļĐāļē āļĒāļ·āļāļĒāļąāļ āđāļāđāļāļāļĩāļĒāđāđāļ§āļīāļĢāđāļāđāļĨāļ°āļāļģāđāļāļīāļāļāļēāļĢāļĒāļ·āļāļĒāļąāļ
āļāļēāļĄāļāđāļāļāļģāļŦāļāļāļ āļēāļĐāļē 1.4 āđāļĄāļ·āđāļāđāļāđ -source 1.5, Java 5 āļ āļēāļĐāļē
āļāļļāļāļŠāļĄāļāļąāļāļīāđāļāđāļĢāļąāļāļāļāļļāļāļēāļ
-nowarn āđāļĄāđāļĄāļĩāļāļģāđāļāļ·āļāļ (āđāļāļĩāļĒāļāđāļāđāļē '-warn:none') āļāļķāđāļāļāļ°āđāļĄāđāļĢāļ°āļāļąāļāļāđāļāļāļ§āļēāļĄ
āļāļĩāđāļŠāļĢāđāļēāļāļāļķāđāļāđāļāļĒ āļāļĢāļ°āļāļēāļĻ āļāļģāđāļāļ·āļāļ or āđāļāđāļāļāđāļĨāļīāļāļāđ.
-āđāļāļ·āļāļ: āļĢāļēāļĒāļāļēāļĢ
āļŠāđāļāļāļģāđāļāļ·āļāļāļŠāļģāļŦāļĢāļąāļāļĢāļēāļĒāļāļēāļĢāļāļĩāđāļāđāļēāļŠāļāļŠāļąāļĒāļāļāļāļĢāļēāļĒāļāļēāļĢāđāļāđāļāļāļĩāđāļāđāļēāļŠāļāļŠāļąāļĒāļāļĩāđāļāļąāđāļāļāđāļ§āļĒāđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒāļāļļāļĨāļ āļēāļ
(āđāļāđāļ '-warn:unusedLocals, deprecation'):
āđāļĄāļāļāļ constructorName āļāļĢāđāļāļĄāļāļ·āđāļāļāļāļāļŠāļāļĢāļąāļāđāļāļāļĢāđ
packageDefaultMethod āļāļĒāļēāļĒāļēāļĄāđāļāļāļāļĩāđāļ§āļīāļāļĩāļāļēāļĢāđāļĢāļīāđāļĄāļāđāļāļāļāļāđāļāđāļāđāļāļ
āļāļēāļĢāđāļĨāļīāļāđāļāđāļāļĢāļ°āđāļ āļāļŦāļĢāļ·āļāļŠāļĄāļēāļāļīāļāļāļĩāđāđāļĨāļīāļāđāļāđāđāļĨāđāļ§
maskedCatchBlocks āļāļĨāđāļāļ catch āļāļĩāđāļāđāļāļāļāļĒāļđāđ
unusedLocals āļāļąāļ§āđāļāļĢāļāđāļāļāļāļīāđāļāđāļĄāđāđāļāļĒāļāđāļēāļ
āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāđāļĄāļāļāļ unusedArguments āđāļĄāđāđāļāļĒāļāđāļēāļ
unusedImports āļāļģāļŠāļąāđāļāļāļģāđāļāđāļēāđāļĄāđāđāļāđāđāļāđāđāļāļĒāļĢāļŦāļąāļŠāđāļāđāļāļĨāđ
āđāļĄāđāļĄāļĩāļāļēāļĢāļĢāļ°āļāļąāļāļāļģāđāļāļ·āļāļāļāļāļĄāđāļāđāļĨāļāļĢāđāļāļąāđāļāļŦāļĄāļ
-warn:āđāļĄāđāļĄāļĩ āđāļĄāđāļĢāļ°āļāļąāļāļāđāļāļāļ§āļēāļĄāļāļĩāđāļŠāļĢāđāļēāļāđāļāļĒ āļāļĢāļ°āļāļēāļĻ āļāļģāđāļāļ·āļāļ or āđāļāđāļāļāđāļĨāļīāļāļāđ.
-āļāļēāļĢāđāļĨāļīāļāđāļāđ
āđāļāđāļāđāļāļĩāļĒāļ§āļāļąāļ -warn:deprecation
-noImportError
āđāļĄāđāļĄāļĩāļāđāļāļāļīāļāļāļĨāļēāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļģāđāļāđāļēāļāļĩāđāļĒāļąāļāđāļĄāđāđāļāđāđāļāđāđāļ
-āļāļģāđāļāļīāļāļāļēāļĢāļāđāļāđāļāļāđāļāļāļīāļāļāļĨāļēāļ
āļāļāļĄāđāļāļĨāđāļāđāļāđāļāļŦāļĨāļąāļāļāļēāļāđāļāļīāļāļāđāļāļāļīāļāļāļĨāļēāļ āļāļąāļĄāļāđāđāļāļĨāđāļāļĨāļēāļŠāļāđāļ§āļĒāļ§āļīāļāļĩāļāļēāļĢāļāļĩāđāļĄāļĩāļāļąāļāļŦāļē
-g:[lines,vars,āđāļŦāļĨāđāļāļāļĩāđāļĄāļē]
āļĢāļ°āļāļąāļāđāļāļāļāļĢāļīāļāļīāļ§āļāđāļāļēāļĢāļāļĩāļāļąāļāļāļķāđāļāļāļēāļāļĄāļĩāļŠāļēāļĄāļĢāļđāļāđāļāļ:
-g āļāđāļāļĄāļđāļĨāļāļēāļĢāļāļĩāļāļąāļāļāļąāđāļāļŦāļĄāļ ('-g:lines,vars,source')
-g:none āđāļĄāđāļĄāļĩāļāđāļāļĄāļđāļĨāļāļēāļĢāļāļĩāļāļąāļ
-g:{items} āļāđāļāļĄāļđāļĨāļāļēāļĢāļāļĩāļāļąāļāļŠāļģāļŦāļĢāļąāļ [lines, vars, source] āđāļāđ/āļāļąāđāļāļŦāļĄāļ āđāļāđāļ
-g:āļāļĢāļĢāļāļąāļāđāļŦāļĨāđāļāļāļĩāđāļĄāļē
- āļĢāļąāļāļĐāļē AllLocals
āļāļāđāļ§āđāļāļķāđāļāļāļąāļ§āđāļāļĢāļāđāļāļāļāļīāđāļāļāļąāđāļāļŦāļĄāļāļĢāļ°āļŦāļ§āđāļēāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļāđāļ (āđāļāļ·āđāļāļāļģāļāļ§āļĒāļāļ§āļēāļĄāļŠāļ°āļāļ§āļāđāļāļāļēāļĢāļāļĩāļāļąāļ)
-āļāđāļāļĄāļđāļĨāļāđāļēāļāļāļīāļ
āļāđāļāļĄāļđāļĨāļāđāļēāļāļāļīāļāļāļēāļĢāļāļģāļāļ§āļ
-āļāļēāļĢāđāļāđāļēāļĢāļŦāļąāļŠ āļĢāļđāļ
āļĢāļ°āļāļļāļĢāļđāļāđāļāļāļāļēāļĢāđāļāđāļēāļĢāļŦāļąāļŠāļāđāļāļāļēāļāđāļĢāļīāđāļĄāļāđāļ āļĢāļ°āļāļļāļāļēāļĢāđāļāđāļēāļĢāļŦāļąāļŠāđāļāļāļāļģāļŦāļāļāđāļāļāļāđāļāđāļāļĨāđ
āļāļ·āđāļāļāļēāļāđāļāļĒāļāļēāļĢāļāđāļāļāđāļēāļĒāļāļ·āđāļāđāļāļĨāđ/āđāļāļĨāđāļāļāļĢāđāļāđāļāļāļēāļāļāļīāļāļāļļāļāđāļāđāļĨāļ°āđāļāļĨāđāļāđāļ§āļĒ '[āļāļēāļĢāđāļāđāļēāļĢāļŦāļąāļŠ]'
-verbose āļŠāđāļāļāđāļāļāļ§āļēāļĄāđāļāļĩāđāļĒāļ§āļāļąāļāļŦāļāđāļ§āļĒāļāļēāļĢāļĢāļ§āļāļĢāļ§āļĄāļāļĩāđāđāļāđāļēāļāļķāļ/āļāļĢāļ°āļĄāļ§āļĨāļāļĨ
-showWeaveInfo
āļŠāđāļāļāđāļāļāļ§āļēāļĄāđāļāļĩāđāļĒāļ§āļāļąāļāļāļēāļĢāļāļāļāđāļē
- āđāļāđāļēāļŠāļđāđāļĢāļ°āļāļ āđāļāļĨāđ āļĢāļ°āļāļļāļĨāđāļāļāđāļāļĨāđāļŠāļģāļŦāļĢāļąāļāļāđāļāļāļ§āļēāļĄāļāļāļĄāđāļāđāļĨāļāļĢāđ
-progress āđāļŠāļāļāļāļ§āļēāļĄāļāļ·āļāļŦāļāđāļē (āļāđāļāļāđāļāđāđāļŦāļĄāļāļāļąāļāļāļķāļ)
-time āđāļŠāļāļāļāđāļāļĄāļđāļĨāļāļ§āļēāļĄāđāļĢāđāļ§
-noExit āļāļĒāđāļēāđāļĢāļĩāļĒāļ System.exit(n) āđāļĄāļ·āđāļāļŠāļīāđāļāļŠāļļāļāļāļēāļĢāļĢāļ§āļāļĢāļ§āļĄ (n=0 āļŦāļēāļāđāļĄāđāļĄāļĩāļāđāļāļāļīāļāļāļĨāļēāļ)
-āļāļģāļāđāļģ N āļāļģāļāđāļģāļāļąāđāļāļāļāļāļāļēāļĢāļĢāļ§āļāļĢāļ§āļĄ N āļāļĢāļąāđāļ (āđāļāļĒāļāļąāđāļ§āđāļāļāļ°āļāļģāļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ)
-XterminateAfterCompilation
āļāļģāđāļŦāđāļāļāļĄāđāļāđāļĨāļāļĢāđāļŦāļĒāļļāļāļāļģāļāļēāļāļāđāļāļāļāļ
-XaddSerialVersionUID
āļāļģāđāļŦāđāļāļāļĄāđāļāđāļĨāļāļĢāđāļāļģāļāļ§āļāđāļĨāļ°āđāļāļīāđāļĄāļāļīāļĨāļāđ SerialVersionUID āđāļŦāđāļāļąāļāļāļĢāļ°āđāļ āļāđāļāļāđāđāļāđ
āļāļēāļĢāđāļāđ Serializable āļāļĩāđāđāļāđāļĢāļąāļāļāļĨāļāļĢāļ°āļāļāļāļēāļāļāđāļēāļāļŦāļāļķāđāļ āļŠāļāļēāļĄāļāļ·āļ
āļāļģāļāļ§āļāļāļēāļāļāļąāđāļāđāļĢāļĩāļĒāļāļāđāļāļāļāļēāļĢāļāļāļāđāļēāļāļ°āđāļāļīāļāļāļķāđāļ
-Xreweavable[:āļāļĩāļāļāļąāļ]
(āļāļāļĨāļāļ - āđāļĨāļīāļāđāļāđāđāļĨāđāļ§āļāļēāļĄāļāđāļēāđāļĢāļīāđāļĄāļāđāļ) āđāļĢāļĩāļĒāļāđāļāđāļāļđāđāļāļĢāļ°āļāļāļāđāļāđāļŦāļĄāļāļāļĩāđāļāļģāļāđāļģāđāļāđāļāļķāđāļ
āļāļģāđāļŦāđāđāļāļīāļāļāļąāđāļāļāļēāļĢāļāļāļāļĩāđāļŠāļēāļĄāļēāļĢāļāļāļāļāļķāđāļāđāļŦāļĄāđāđāļāđāļāļķāđāļāļāļĒāļđāđāļāļąāļ
āļāđāļāļŦāđāļēāļĄāđāļāļāļēāļĢāļāļĒāļēāļĒāļēāļĄāļāļāļāđāļēāđāļŦāļĄāđāļāļļāļāļāļĢāļ°āđāļ āļāļāļĩāđāđāļāļ°āļāļģāļāļēāļĢāļāļ
āļāļĢāļ°āđāļ āļāļāļ°āļāđāļāļāļŠāļēāļĄāļēāļĢāļāđāļāđāļēāļāļķāļāđāļāđ
-XnoāļāļīāļāđāļĨāļāđ
(āļāļāļĨāļāļ) āđāļĄāđāļāļīāļāđāļĨāļāđāļĢāļāļāļāļģāđāļāļ°āļāļģ
-XincreationalFile āđāļāļĨāđ
(āļāļāļĨāļāļ) āđāļāđāļāļēāļāđāļāđāđāļŦāļĄāļ·āļāļāđāļŦāļĄāļāļāļĩāđāđāļāļīāđāļĄāļāļķāđāļ āđāļāđāđāļāđāđāļāļĨāđāđāļāļ
āļāļīāļāļāļļāļāļĄāļēāļāļĢāļāļēāļāđāļāļ·āđāļāļāļ§āļāļāļļāļĄāļāļāļĄāđāļāđāļĨāļāļĢāđ āļĄāļąāļāļāļ°āļāļāļĄāđāļāļĨāđāđāļŦāļĄāđāļāļļāļāļāļĢāļąāđāļāļāļĩāđāđāļāļĨāđ is
āđāļāļĨāļĩāđāļĒāļāđāļĨāļ°āļŦāļĒāļļāļāđāļĄāļ·āđāļāđāļāļĨāđāļāļđāļāļĨāļ
-XserializableAspects
(āļāļāļĨāļāļ) āđāļāļĒāļāļāļāļīāļĄāļąāļāđāļāđāļāļāđāļāļāļīāļāļāļĨāļēāļāđāļāļāļēāļĢāļāļĢāļ°āļāļēāļĻāļāđāļēāļ Serializable āļāļĩāđ
āļāļąāļ§āđāļĨāļ·āļāļāļĨāļāļāđāļ āļāļģāļāļąāļ āļāļąāđāļ
-XnotāļāļģāļāļĨāļąāļāļĄāļēāđāļāđāđāļŦāļĄāđāđāļāđ
(āļāļāļĨāļāļ) āļŠāļĢāđāļēāļāđāļāļĨāđāļāļĨāļēāļŠāļāļĩāđ AspectJ āđāļĄāđāļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļāđāļŦāļĄāđāđāļāđāđāļāļ āļēāļĒāļŦāļĨāļąāļ
-Xajruntimelevel:1.2, āļĢāļ°āļāļąāļāđāļ§āļĨāļē ajrun:1.5
(āļāļāļĨāļāļ) āļāļāļļāļāļēāļāđāļŦāđāļŠāļĢāđāļēāļāđāļāđāļāļāļĩāđāļāļģāļŦāļāļāđāļāđāļēāļŦāļĄāļēāļĒāđāļāđāļ 1.2 āļŦāļĢāļ·āļ 1.5 āļĢāļ°āļāļąāļ
āļĢāļąāļāđāļāļĄāđ AspectJ (āļāđāļēāđāļĢāļīāđāļĄāļāđāļ 1.5)
āđāļāļ·āđāļāđāļĄāđāļĄāļĩāļĄāļąāļ āļāļ·āđāļ
ajc āļĒāļāļĄāļĢāļąāļāđāļāļĨāđāļāđāļāļāļāļąāļāļāđāļ§āļĒ .āļāļ§āļē āļŠāđāļ§āļāļāļĒāļēāļĒāļŦāļĢāļ·āļ .āļāļēāļ āļŠāđāļ§āļāļāļĒāļēāļĒ. āđāļĢāļē
āļāļāļāļīāđāļāđ .āļāļ§āļē āļŠāļģāļŦāļĢāļąāļāđāļāļĨāđāļāļąāđāļāļŦāļĄāļāļāļāļāđāļĢāļēāđāļāļĢāļ°āļāļ AspectJ -- āđāļāļĨāđāļāļĩāđāļĄāļĩāļāđāļēāļāļāđāļēāļāđ
āđāļāđāļāđāļāļĩāļĒāļ§āļāļąāļāđāļāļĨāđāļāļĩāđāļĄāļĩāļāļĨāļēāļŠ āļāļĒāđāļēāļāđāļĢāļāđāļāļēāļĄ āļŦāļēāļāļāļļāļāļāļģāđāļāđāļāļāđāļāļāđāļāđāđāļāļĢāļ·āđāļāļāļāļąāļāļĢ
āđāļĒāļāđāļĒāļ°āđāļāļĨāđāļāļĩāđāđāļāđāļāļąāļāļāđāļāļąāļāđāļāļīāđāļĄāđāļāļīāļĄāļāļāļ AspectJ āļāļąāļāđāļāļĨāđāļāļĩāđāļāļĢāļīāļŠāļļāļāļāļīāđ
Java āđāļĢāļēāđāļāļ°āļāļģāđāļŦāđāđāļāđ the .āļāļēāļ āļāļēāļĄāļŠāļāļļāļĨāļāļāļāđāļāļĨāđāđāļŦāļĨāđāļēāļāļąāđāļ
āđāļĢāļēāļāđāļāļāļāļēāļĢāļāļĩāļāļāļąāļāļ§āļīāļāļĩāļāļ·āđāļ āđ āļāļāļāļāļ§āļēāļĄāđāļāļāļāđāļēāļāļāļēāļāļāļĨāđāļāđāļāļāļāļļāļŠāļąāļāļāļēāļāļēāļĢāļāļąāđāļāļāļ·āđāļ
āļŦāļĢāļ·āļāđāļāđāļāđāļāļāļĒāđāļāļĒāđāļāļ·āđāļāļŠāļāļąāļāļŠāļāļļāļ .āļāļēāļ āļāļēāļĢāļāļĒāļēāļĒ.
· āļāđāļāļāļāļĨāļāđāļĢāļ·āđāļāļāļāļ·āđāļāđāļāļĨāđāļāļąāđāļāļĒāļēāļāļāđāļāļāļēāļĢāļāļąāļāļāļąāļāđāļāđāđāļĨāļ°āļāļģāđāļāļŠāļđāđāļāļ·āđāļāļāļĩāđāļāđāļēāļāļķāļāļāļąāļāļŠāļģāļŦāļĢāļąāļāđāļāđāļĄāļļāļĄāļāļāļāļāļļāļ
āđāļāļ TracingAspect.java āđāļĢāļēāđāļāļ°āļāļģāđāļŦāđāđāļāđ Tracing.aj (āļŦāļĢāļ·āļāđāļāļĩāļĒāļāđāļāđ Tracing.java)
āđāļāļ.
· āđāļāđāļāđāļāļāļĒāđāļāļĒāļĒāđāļēāļĒāđāļāđāļĄāļļāļĄāļāđāļēāļ āđ āļāļāļāļāļēāļāļāļĩāđāļāļāļāļīāđāļāļĢāļ°āļāļāđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļ
āļāļ§āļēāļĄāļāđāļāļāļāļēāļĢāđāļāļĩāļĒāļĄāđāļāļāđāļēāļāļŠāļīāļāļāļīāļāļīāđāļĻāļĐ āđāļāļāļāļĩāđāļāļ°āđāļāļīāđāļĄāđāļāđāļāđāļāļāļĒāđāļāļĒāđāļāđāļ
āļāđāļēāļ āđāļĢāļēāđāļāļ°āļāļģāđāļŦāđāđāļāđ .āļāļēāļ āļāļēāļĄāļŠāļāļļāļĨāđāļĨāļ°āļĢāļ§āļĄāļāļķāļāđāļāļĨāđāđāļŦāļĨāđāļēāļāļĩāđāđāļ your
āđāļāđāļāđāļāļāļāļĩāđāļĄāļĩāļāļĒāļđāđāđāļāļ
āļāļ§āļēāļĄāđāļāđāļēāļāļąāļāđāļāđ
AspectJ āđāļāđāļāļŠāđāļ§āļāļāļĒāļēāļĒāļāļĩāđāđāļāđāļēāļāļąāļāđāļāđāļāļąāļāļ āļēāļĐāļēāļāļēāļĢāđāļāļĩāļĒāļāđāļāļĢāđāļāļĢāļĄ Java āļāļāļĄāđāļāđāļĨāļāļĢāđ AspectJ
āļĒāļķāļāļĄāļąāđāļāđāļ āļāļ·āđāļāļāļĩāđ āļāļ§āļē āļ āļēāļĐāļē āļāđāļāļĄāļđāļĨāļāļģāđāļāļēāļ° āļāļĩāđāļŠāļāļ āļāļāļąāļāļāļĩāđ (āļŦāļāļąāļāļŠāļ·āļ)
http://java.sun.com/docs/books/jls/index.html āđāļĨāļ°āđāļāļāļĩāđ āļāļ·āđāļāļāļĩāđ āļāļ§āļē āđāļŠāļĄāļ·āļāļ āđāļāļĢāļ·āđāļāļ
āļŠāđāļāļ āļāļĩāđāļŠāļāļ āļāļāļąāļāļāļĩāđ (āļŦāļāļąāļāļŠāļ·āļ) http://java.sun.com/docs/books/vmspec/index.html āđāļĨāļ°
āļāļģāļāļēāļāļāļāđāļāļĨāļāļāļāļĢāđāļĄāļāļĩāđāđāļāđāļēāļāļąāļāđāļāđāļāļąāļ Java 2 āļĢāļŦāļąāļŠāļāļĩāđāļŠāļĢāđāļēāļāļāļģāļāļēāļāļāļ Java 1.1 āļŦāļĢāļ·āļ
āđāļāļĨāļāļāļāļĢāđāļĄāļāļĩāđāđāļāđāļēāļāļąāļāđāļāđāđāļāļ āļēāļĒāļŦāļĨāļąāļ āļŠāļģāļŦāļĢāļąāļāļāđāļāļĄāļđāļĨāđāļāļīāđāļĄāđāļāļīāļĄāđāļāļĩāđāļĒāļ§āļāļąāļāļāļ§āļēāļĄāđāļāđāļēāļāļąāļāđāļāđāļāļąāļ Java āđāļĨāļ°āļāļąāļ
AspectJ āļĢāļļāđāļāļāđāļāļāļŦāļāđāļē āļāļđ "" >.
āļāļąāļ§āļāļĒāđāļēāļ
A āļāđāļēāļĒ āļāļąāļ§āļāļĒāđāļēāļ
āļĢāļ§āļāļĢāļ§āļĄāļŠāļāļāđāļāļĨāđ:
ajc HelloWorld.java Trace.java
An āļāļąāļ§āļāļĒāđāļēāļ āļāļēāļĢāđāļāđ -argfile/@
āđāļāļ·āđāļāļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļāļāļēāļĢāļĢāļ°āļāļļāļāļ·āđāļāđāļāļĨāđāļāļāļāļĢāļĢāļāļąāļāļāļģāļŠāļąāđāļ āđāļŦāđāđāļŠāļāļāļĢāļēāļĒāļāļēāļĢāđāļāļĨāđāļāđāļāļāļāļąāļāđāļ line-delimited
āļāđāļāļāļ§āļēāļĄ argfile.jpg āđāļŠāđāļāļāļēāļāļāļāļāđāļāļĨāđāļāđāļāļāļēāļāļāļēāļāđāļāđāļāđāļāļāļŠāļąāļĄāļāļđāļĢāļāđāļŦāļĢāļ·āļāļŠāļąāļĄāļāļąāļāļāđāļāļąāļ argfile āđāļĨāļ°āļāļēāļāļāļ°
āļĢāļ§āļĄ argfiles āļāļ·āđāļ āđ āđāļāļĒ @-reference āđāļāļĨāđāļāđāļāđāļāļāļĩāđ source.lst āļĄāļĩ
āđāļāļĨāđāđāļāļāļŠāļąāļĄāļāļđāļĢāļāđāđāļĨāļ°āđāļāļāļŠāļąāļĄāļāļąāļāļāđāđāļĨāļ° @-references:
Gui.java
/home/user/src/Library.java
āļāđāļāļĄāļđāļĨ/Repository.java
āļāđāļāļĄāļđāļĨ/Access.java
@../../common/common.lst
@/home/user/src/lib.lst
āļāļđ/body/ArrayView.java
āļĢāļ§āļāļĢāļ§āļĄāđāļāļĨāđāđāļāļĒāđāļāđāļĢāļđāļāđāļāļ -argfile āļŦāļĢāļ·āļ @:
ajc -argfile source.lst
ajc @sources.lst
Argfiles āļĒāļąāļāļĢāļāļāļĢāļąāļāđāļāļĒ jikes āđāļĨāļ° javac āļāļąāļāļāļąāđāļāļāļļāļāļāļķāļāļŠāļēāļĄāļēāļĢāļāđāļāđāđāļāļĨāđāđāļāđāļŪāļāļĢāļīāļāļāļīāļĨāļāđāđāļāđ
āļāļĒāđāļēāļāđāļĢāļāđāļāļēāļĄ āļāļēāļĢāļŠāļāļąāļāļŠāļāļļāļāļāļ°āđāļāļāļāđāļēāļāļāļąāļāđāļ:
· āđāļāļāļēāļ° ajc āđāļāđāļēāļāļąāđāļāļāļĩāđāļĒāļāļĄāļĢāļąāļāļāļąāļ§āđāļĨāļ·āļāļāļāļĢāļĢāļāļąāļāļāļģāļŠāļąāđāļ
· Jikes āđāļĨāļ° Javac āđāļĄāđāļĒāļāļĄāļĢāļąāļāļāļēāļĢāļāđāļēāļāļāļīāļ @argfile āļ āļēāļĒāđāļ
· Jikes āđāļĨāļ° Javac āļĒāļāļĄāļĢāļąāļāđāļāļāļēāļ°āđāļāļāļāļāļĢāđāļĄ @file āļāļāļāļĢāļĢāļāļąāļāļāļģāļŠāļąāđāļ
An āļāļąāļ§āļāļĒāđāļēāļ āļāļēāļĢāđāļāđ -inpath āđāļĨāļ° -Aspectpath
āļāļēāļĢāļāļāđāļāđāļāđāļāļāđāđāļāļĒāđāļāđ -inpath: AspectJ 1.2 āļĢāļāļāļĢāļąāļāļāļēāļĢāļāļāđāļāļĨāđ .class āđāļāļāļīāļāļāļļāļ zip/jar
āđāļāļĨāđāđāļĨāļ°āđāļāđāļĢāđāļāļāļāļĢāļĩ āļāļēāļĢāđāļāđ jars āļāļīāļāļāļļāļāļāđāđāļŦāļĄāļ·āļāļāļāļąāļāļāļēāļĢāļāļāļĄāđāļāļĨāđāļāļāļĢāđāļŠāđāļāļĨāđāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļ
āđāļĨāļ°āđāļāļāļēāļĢāļĩāļāļąāđāļāļŦāļĄāļāļāļ°āļāļđāļāļŠāđāļāđāļāļĒāļąāļāđāļāļēāļāđāļāļļāļ āđāļĄāđāļ§āđāļēāļāļāļĄāđāļāđāļĨāļāļĢāđāļāļĩāđāđāļāđāļēāļāļąāļāđāļāđāļāļąāļ Java āļāļēāļāđāļāļāļāđāļēāļāļāļąāļāđāļ
āđāļāļēāļāđāļāļļāļ ajc āļāļ§āļĢāđāļāđāđāļāđāļāļāļīāļāļāļļāļāđāļāļĨāđāļāļĨāļēāļŠāđāļ āđ āļāļĩāđāļŠāļĢāđāļēāļāđāļāļĒ javac, jikes, eclipse
āđāļĨāļ°āđāļāđāļāļāļ ajc āļāđāļēāļāļāļĩāđāļĢāļ§āļĄāļāļĒāļđāđāđāļ -inpath āļāļ°āļāļđāļāļāļąāļāļāļāđāļŦāļĄāļ·āļāļ .class . āļāļ·āđāļāđ
āđāļāļĨāđāļāđāļēāļāđ āđāļĨāļ°āļāļ°āļĄāļĩāļāļĨāļāļąāļāđāļāļĨāđāļāļĢāļ°āđāļ āļāļāļ·āđāļāđ āļāļēāļĄāļāļāļāļī
āđāļĨāļāļĢāļēāļĢāļĩ Aspect āđāļāļĒāđāļāđ -aspectpath: AspectJ 1.1 āļĢāļāļāļĢāļąāļāļāļēāļĢāļāļāļāļēāļāđāļĨāļāļĢāļēāļĢāļĩāđāļāļāļāđāļēāļāļāļĒāđāļēāļāđāļāļĩāļĒāļ§
āļāļĩāđāļĄāļĩāđāļāđāļĄāļļāļĄāļāđāļēāļāđ āđāļāđāļāđāļāļĩāļĒāļ§āļāļąāļāđāļāļāļīāļāļāļļāļ āļŠāļīāđāļāđāļŦāļĨāđāļēāļāļĩāđāļŠāđāļāļāļĨāļāđāļāļāļīāļāļāļļāļāļāļąāđāļāļŦāļĄāļ āđāļĄāđāđāļŦāļĄāļ·āļāļāđāļāđāļŠāđ āļāļ§āļāđāļāļē
āļāļąāļ§āđāļāļāļāļ°āđāļĄāđāđāļāđāļĢāļąāļāļāļĨāļāļĢāļ°āļāļāļŦāļĢāļ·āļāļāļĨāđāļāļĒāļāļāļāļĄāļēāđāļāđāļāļāļĨāļāļĨāļīāļ āđāļŦāļĨāđāļāļāļĩāđāļĄāļēāļāļĩāđāļĢāļ§āļāļĢāļ§āļĄāļāđāļ§āļĒāđāļĨāļāļĢāļēāļĢāļĩāļāđāļēāļ
āļāđāļāļāļĢāļąāļāļāđāļ§āļĒāđāļĨāļāļĢāļēāļĢāļĩāļāđāļēāļāđāļāļĩāļĒāļ§āļāļąāļāļāļ classpath
āļāļąāļ§āļāļĒāđāļēāļāļāđāļāđāļāļāļĩāđāļŠāļĢāđāļēāļāļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāļāļīāļāļāļēāļĄāđāļāļŠāļ āļēāļāđāļ§āļāļĨāđāļāļĄāļāļĢāļĢāļāļąāļāļĢāļąāļāļāļģāļŠāļąāđāļ āļĄāļąāļāļŠāļĢāđāļēāļ
āđāļĨāļāļĢāļēāļĢāļĩāļāđāļēāļāđāļāļāļāđāļēāļāļāļĒāđāļēāļāđāļāļĩāļĒāļ§ āļĢāļ§āļāļĢāļ§āļĄāļāļēāļāļāļĨāļēāļŠāđāļāļ·āđāļāđāļāđāđāļāđāļāļāļīāļāļāļļāļ bytecode āđāļĨāļ°āļāļāļĄāđāļāļĨāđ
āļāļĨāļēāļŠāđāļĨāļ°āđāļŦāļĨāđāļāļāđāļāļĄāļđāļĨāļāļ·āđāļāđ āļāđāļ§āļĒāđāļĨāļāļĢāļēāļĢāļĩāļāđāļēāļ
āļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāļāļīāļāļāļēāļĄāļāļĒāļđāđāđāļāļāļēāļĢāļāļĢāļ°āļāļēāļĒ AspectJ ({aspectj}/doc/examples/tracing) āļāļĩāđ
āđāļāđāđāļāļĨāđāļāđāļāđāļāļāļĩāđ:
āļāđāļēāļj1.1/
āļāļąāļāļāļĒāļ°/
AJC
lib /
āļĄāļļāļĄāļĄāļāļjrt.jar
āļāļąāļ§āļāļĒāđāļēāļ /
āļāļīāļāļāļēāļĄ /
Circle.java
āļāļąāļ§āļāļĒāđāļēāļ Main.java
lib /
AbstractTrace.java
TraceMyClasses.java
notrace.lst
Square.java
Traclib.lst
Tracev3.lst
TwoDShape.java
āļĢāļļāđāļ3/
Trace.java
TraceMyClasses.java
āļāđāļēāļāļĨāđāļēāļ āļāļąāļ§āļāļąāđāļāļāļēāļāļāļ°āļāļđāļāđāļāđāđāļāđāļ ";" āđāļāđāļāļąāļ§āļāļąāđāļāđāļāļĨāđāļāļ·āļ "/" āļāļģāļŠāļąāđāļāļāļąāđāļāļŦāļĄāļāļāļ·āļ
āđāļāļāļĢāļĢāļāļąāļāđāļāļĩāļĒāļ§ āļāļĢāļąāļāļāļēāļāđāļĨāļ°āļāļģāļŠāļąāđāļāđāļāļŠāļ āļēāļāđāļ§āļāļĨāđāļāļĄāļāļāļāļāļļāļāļāļēāļĄāļāđāļāļāļāļēāļĢ
āļāļąāđāļāļāđāļēāļāļēāļ classpath āđāļĨāļ°āđāļāđāļĢāđāļāļāļāļĢāļĩāļāļąāļāļāļļāļāļąāļ:
āļāļąāļ§āļāļĒāđāļēāļāļāļĩāļāļĩ
āļŠāđāļāļāļāļ ajrt=../lib/aspectjrt.jar
āļŠāđāļāļāļāļ CLASSPATH="$ajrt"
āđāļŠāđāļāļāļēāļāļāļēāļĢāļŠāđāļāļāļāļ="../ bin:$āđāļŠāđāļāļāļēāļ"
āļŠāļĢāđāļēāļāđāļĨāļāļĢāļēāļĢāļĩāļāļēāļĢāļāļīāļāļāļēāļĄāđāļāļāļāđāļēāļāļāļĒāđāļēāļāđāļāļĩāļĒāļ§:
ajc -argfile āļāļēāļĢāļāļīāļāļāļēāļĄ/tracelib.lst -outjar tracelib.jar
āļŠāļĢāđāļēāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāđāļ§āļĒāļāļēāļĢāļāļīāļāļāļēāļĄāđāļāļāļąāđāļāļāļāļāđāļāļĩāļĒāļ§:
ajc -aspectpath tracelib.jar -argfile āļāļēāļĢāļāļīāļāļāļēāļĄ/notrace.lst -outjar tracedapp.jar
āđāļĢāļĩāļĒāļāđāļāđāđāļāļāļāļĨāļīāđāļāļāļąāļāļāđāļ§āļĒāļāļēāļĢāļāļīāļāļāļēāļĄ:
java -classpath "$ajrt;tracedapp.jar;tracelib.jar" āļāļēāļĢāļāļīāļāļāļēāļĄ āļāļąāļ§āļāļĒāđāļēāļāļŦāļĨāļąāļ
āļŠāļĢāđāļēāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāđāļ§āļĒāļāļēāļĢāļāļīāļāļāļēāļĄāļāļēāļāđāļāļāļēāļĢāļĩāđāļāļŠāļāļāļāļąāđāļāļāļāļ:
· (a) āļŠāļĢāđāļēāļāļāļĨāļēāļŠāđāļāļāļāļĨāļīāđāļāļāļąāļ (āđāļāđ javac āđāļāļ·āđāļāļāļēāļĢāļŠāļēāļāļīāļ):
mkdir āļāļĨāļēāļŠ
javac -d āļāļēāļĢāļāļīāļāļāļēāļĄāļāļĨāļēāļŠ/*.java
jar cfM app.jar -C āļāļĨāļēāļŠ
· (b) āļŠāļĢāđāļēāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāđāļ§āļĒāļāļēāļĢāļāļīāļāļāļēāļĄ:
ajc -inpath app.jar -aspectpath tracelib.jar -outjar āļāļĩāđāļāļīāļāļāļēāļĄāđāļāļ.jar
āđāļĢāļĩāļĒāļāđāļāđāđāļāļāļāļĨāļīāđāļāļāļąāļāļāđāļ§āļĒāļāļēāļĢāļāļīāļāļāļēāļĄ (āđāļŦāļĄāļ·āļāļāļāđāļēāļāļāļ):
java -classpath "$ajrt;tracedapp.jar;tracelib.jar" āļāļēāļĢāļāļīāļāļāļēāļĄ āļāļąāļ§āļāļĒāđāļēāļāļŦāļĨāļąāļ
āđāļĢāļĩāļĒāļāđāļāđāđāļāļāļāļĨāļīāđāļāļāļąāļāđāļāļĒāđāļĄāđāļāļīāļāļāļēāļĄ:
java -classpath "app.jar" tracing.ExampleMain
āļāļ·āđāļāļāļĩāđ āļĄāļļāļĄāļĄāļāļJ āļāļđāđāļĢāļ§āļāļĢāļ§āļĄ API
āļāļāļĄāđāļāđāļĨāļāļĢāđ AspectJ āļāļđāļāļāļģāđāļāđāļāđāļāļĒāđāļēāļāļŠāļĄāļāļđāļĢāļāđāđāļ Java āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāđāļāđāļ§āđāļēāđāļāđāļāļāļĨāļēāļŠ Java
āļāļīāļāđāļāļāļĢāđāđāļāļāđāļāļĩāļĒāļ§āļāļĩāđāļāļ§āļĢāļāļ·āļāđāļāđāļāļŠāļēāļāļēāļĢāļāļ°āļāļ·āļāļ§āļīāļāļĩāļāļēāļĢāļŠāļēāļāļēāļĢāļāļ°āđāļ
org.aspectj.tools.ajc.Main. āđāļāđāļ, āļŦāļĨāļąāļ(āļŠāļāļĢāļīāļ[] āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđ) āđāļāđāļĄāļēāļāļĢāļāļēāļ AJC āļāļģāļŠāļąāđāļ
āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļĢāļĢāļāļąāļ āļāļķāđāļāļŦāļĄāļēāļĒāļāļ§āļēāļĄāļ§āđāļēāļ§āļīāļāļĩāļāļ·āđāļāđāļāļāļēāļĢāļĢāļąāļāļāļāļĄāđāļāđāļĨāļāļĢāđāļāļ·āļ
āļāļ§āļē org.aspectj.tools.ajc.Main [āļāļąāļ§āđāļĨāļ·āļāļ...] [āđāļāļĨāđ...]
āđāļāļāļēāļĢāđāļāđāļēāļāļķāļāļāđāļāļāļ§āļēāļĄāļāļāļĄāđāļāđāļĨāļāļĢāđāđāļāļĒāļāļēāļāđāļāļĢāđāļāļĢāļĄ āđāļŦāđāđāļāđāđāļĄāļāļāļ setHolder(IMessageHolder
āļāļĩāđāļĒāļķāļ) āđāļĨāļ° / āļŦāļĢāļ·āļ āļ§āļīāđāļ(āļŠāļāļĢāļīāļ[] āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđ IMessageāļāļđāđāļāļ·āļ āļāļĩāđāļĒāļķāļ). AJC āļĢāļēāļĒāļāļēāļāđāļāđāļĨāļ°āļāđāļāļāļ§āļēāļĄāđāļāļĒāļąāļ
āļāļđāđāļāļ·āļāđāļāđ IMessageHolder.handleMessage(..). āļŦāļēāļāļāļļāļāļāđāļāļāļāļēāļĢāļĢāļ§āļāļĢāļ§āļĄāļāđāļāļāļ§āļēāļĄ
āđāļāđ āļāļąāļ§āļāļąāļāļāļēāļĢāļāđāļāļāļ§āļēāļĄ āđāļāđāļāļāļāļāļāļļāļ IMessageāļāļđāđāļāļ·āļ. āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ āļāļāļĄāđāļāļĨāđāđāļĨāļ°āļĢāļąāļ the
āļāļēāļĄāļāđāļ§āļĒ Aspectjtools.jar āļāļāđāļŠāđāļāļāļēāļāļāļāļāļāļąāđāļāđāļĢāļĩāļĒāļ:
āļāļģāđāļāđāļē org.aspectj.bridge.*;
āļāļģāđāļāđāļē org.aspectj.tools.ajc.Main;
āļāļģāđāļāđāļē java.util.Arrays;
WrapAjc āļāļĨāļēāļŠāļŠāļēāļāļēāļĢāļāļ° {
āđāļĄāļāļ°āļāļāļāļĩāđāļŠāļēāļāļēāļĢāļāļ° main (String [] args) {
āļāļāļĄāđāļāđāļĨāļāļĢāđāļŦāļĨāļąāļ = āđāļŦāļĄāđ Main();
MessageHandler m = MessageHandler āđāļŦāļĄāđ ();
compiler.run (args, āļĄ.);
IMessage[] ms = m.getMessages(null, āļāļĢāļīāļ);
System.out.println("messages: " + āļāļēāļĢāđāđāļĢāļĒāđ.asList(āļāļēāļāļŠāļēāļ§));
}
}
āļāļāļ āļĢāđāļāļāļĢāļāļĒ āđāļĨāļ° āđāļāļĨāđāļāđāļāļāļāļąāļ āļāļļāļāļĨāļąāļāļĐāļāļ°
āđāļĄāđāđāļŦāļĄāļ·āļāļāļāļąāļāļāļāļĄāđāļāđāļĨāļāļĢāđāļāļēāļ§āļēāļāļąāđāļ§āđāļ āļāļāļĄāđāļāđāļĨāļāļĢāđ AspectJ āļāļēāļāļŠāļĢāđāļēāļāđāļāļāļēāļāļāļĢāļāļĩ
classfiles āļāļēāļāđāļāļĨāđāļāđāļāļāļāļąāļāļŦāļĨāļēāļĒāđāļāļĨāđ āļāđāļēāđāļŠāļĩāļĒāļāļēāļĒāļāļĩāđāļĢāļđāļāđāļāļāđāļāļĨāđāļāļĨāļēāļŠ Java āļāļąāđāļāđāļāļīāļĄ
āđāļĄāđāļŠāļāļąāļāļŠāļāļļāļāđāļāļāļāļĢāļīāļāļīāļ§āļāđ SourceFile āļŦāļĨāļēāļĒāļĢāļēāļĒāļāļēāļĢ āđāļāļ·āđāļāđāļŦāđāđāļāđāđāļāļ§āđāļēāđāļāļĨāđāļāđāļāļāļāļąāļāļāļąāđāļāļŦāļĄāļ
āļĄāļĩāļāđāļāļĄāļđāļĨ āļāļāļĄāđāļāđāļĨāļāļĢāđ AspectJ āļāļēāļāđāļāđāļēāļĢāļŦāļąāļŠāļŦāļĨāļēāļĒāļāļ·āđāļāđāļāļĨāđāđāļāļāļēāļāļāļĢāļāļĩ
āđāļāđāļāļāļāļĢāļīāļāļīāļ§āļāđ SourceFile āđāļĄāļ·āđāļ Java VM āļŠāļĢāđāļēāļāļŠāđāļāđāļāđāļāļĢāļ āļāļ°āđāļāđāļŠāļīāđāļāļāļĩāđ
āđāļāļāļāļĢāļīāļāļīāļ§āļāđāđāļāļ·āđāļāļĢāļ°āļāļļāđāļāļĨāđāļāđāļāļāļēāļ
(āļāļāļĄāđāļāđāļĨāļāļĢāđ AspectJ 1.0 āļĒāļąāļāļĢāļāļāļĢāļąāļāļāļēāļĄāļŠāļāļļāļĨāđāļāļĨāđ .class āļāļāļ JSR-45 āļāļĩāļāļāđāļ§āļĒ
āļāļāļļāļāļēāļāđāļŦāđāļāļĩāļāļąāļāđāļāļāļĢāđāļāļĩāđāđāļāđāļēāļāļąāļāđāļāđ (āđāļāđāļ jdb āđāļ Java 1.4.1) āđāļāļ·āđāļāļĢāļ°āļāļļāđāļāļĨāđāđāļĨāļ°āļāļĢāļĢāļāļąāļāļāļĩāđāļāļđāļāļāđāļāļ
āđāļĄāđāļāļĢāļ°āļāļąāđāļāđāļŦāđāđāļāļĨāđāļāđāļāļāļāļąāļāļāļģāļāļ§āļāļĄāļēāļāļŠāļģāļŦāļĢāļąāļāļāļĨāļēāļŠāđāļāļĩāļĒāļ§ āļĄāļĩāļāļēāļĢāļ§āļēāļāđāļāļāļĢāļāļāļĢāļąāļ JSR-45 āļŠāļģāļŦāļĢāļąāļ ajc in
AspectJ 1.1 āđāļāđāđāļĄāđāđāļāđāļāļĒāļđāđāđāļāļĢāļĩāļĨāļĩāļŠāđāļĢāļīāđāļĄāļāđāļ āđāļāļāļēāļĢāļĢāļąāļāđāļāļĨāđ .class āļāļĩāđāđāļāđāļāļļāļāļāļāļāļĢāđāļāļāđāļāđāļāļĒāđāļēāļāļŠāļĄāļāļđāļĢāļāđ āđāļŦāđāđāļāđ
āļāļąāļ§āđāļĨāļ·āļāļ -XnoInline)
āļāļēāļāļĄāļĩāļāļĢāļąāđāļāđāļāļĩāļĒāļ§āļāļĩāđāļāļļāļāļāļ°āđāļŦāđāļāļĢāļđāļāđāļāļāļāļĩāđāļāļ·āļāđāļĄāļ·āđāļāļāļļāļāļāļđāļŠāđāļāđāļāđāļāļĢāļ āļāļķāđāļāļāļļāļ
āļāļēāļāļāļāļĢāđāļāļāļĢāļāļĒāļāļāļāļĢāļđāļāđāļāļ
java.lang.NullPointerException
āļāļĩāđ Main.new$constructor_call37(Main.java;SynchAspect.java[1k]:1030)
āļāļĩāđāđāļŦāļāđāļāļāļāļāļāļī
āđāļāļĨāđ:LineNumber
āļĢāļđāļāđāļāļāļāļĩāđāļāļļāļāđāļŦāđāļ
File0;File1[Number1];File2[Number2] ... :LineNumber
āđāļāļāļĢāļāļĩāļāļĩāđ LineNumber āļāļ·āļāļāļāļāđāļāđāļāļāļāļāļīāđāļāļāļĢāļĢāļāļąāļāļāļ§āļāļāļąāļ "āļāļĢāļĢāļāļąāļāđāļĢāļīāđāļĄāļāđāļ" āļāļāļāļāļĢāļīāļ
āđāļāļĨāđāļāđāļāļāļēāļ āļāļąāđāļāļŦāļĄāļēāļĒāļāļ§āļēāļĄāļ§āđāļēāļāļļāļāđāļāđ LineNumber āđāļāļ·āđāļāļĢāļ°āļāļļāđāļāļĨāđāļāđāļāļāļēāļāđāļĨāļ°āđāļāļ·āđāļāļāđāļāļŦāļē
āļāļĢāļĢāļāļąāļāļāļĩāđāđāļāđāļāļāļąāļāļŦāļē āļāļąāļ§āđāļĨāļāđāļ [āļ§āļāđāļĨāđāļ] āļŦāļĨāļąāļāļāļēāļāđāļāđāļĨāļ°āđāļāļĨāđāļāļāļāļāļļāļāļ§āđāļē "start ." āđāļŠāļĄāļ·āļāļ
āļāļĢāļĢāļāļąāļ" āļŠāļģāļŦāļĢāļąāļāđāļāļĨāđāļāļąāđāļ (āđāļāļĨāđāđāļĢāļāļĄāļĩāļāļļāļāđāļĢāļīāđāļĄāļāđāļāđāļāđāļ 0)
āđāļāļāļąāļ§āļāļĒāđāļēāļāļāļāļāđāļĢāļēāļāļēāļāļāļēāļĢāļāļīāļāļāļēāļĄāļāđāļāļĒāļāđāļ§āđāļāļāļąāļ§āļāļĩāđ null āļāļĢāļĢāļāļąāļāđāļĢāļīāđāļĄāļāđāļāđāļŠāļĄāļ·āļāļāļāļ·āļ 1030
āđāļāļ·āđāļāļāļāļēāļāđāļāļĨāđ SynchAspect.java "āđāļĢāļīāđāļĄāļāđāļ" āļāļĩāđāļāļĢāļĢāļāļąāļ 1000 [1k] LineNumber āļāļĩāđāđāļāļāļĩāđāļāļĢāļĢāļāļąāļ
30 āļāļāļ SynchAspect.java
āļāļąāļāļāļąāđāļ āđāļĄāļ·āđāļāļāđāļāļāđāļāļāļīāļāļāļąāļāļŠāđāļāđāļāđāļāļĢāļāļāļąāļāļāļĨāđāļēāļ§ āļ§āļīāļāļĩāļāđāļāļŦāļēāļāļģāđāļŦāļāđāļāļāđāļāļāļēāļāļāļĩāđāđāļāđāļāļĢāļīāļāļāļ·āļto
āļāļđāļĢāļēāļĒāļāļēāļĢāļŦāļĄāļēāļĒāđāļĨāļ "āļāļĢāļĢāļāļąāļāđāļĢāļīāđāļĄāļāđāļ" āđāļāļ·āđāļāļāđāļāļŦāļēāļŦāļĄāļēāļĒāđāļĨāļāļāļĩāđāļāļĒāļđāđāđāļāđāļāļĢāļĢāļāļąāļāļāļĩāđāđāļŠāļāļ
āļāļąāļ§āđāļĨāļ. āļāļąāđāļāļāļ·āļāđāļāļĨāđāļāļĩāđāļŠāļēāļĄāļēāļĢāļāļāđāļāļŦāļēāļāļģāđāļŦāļāđāļāļāđāļāļāļēāļāđāļāđāļāļĢāļīāļ āļāļēāļāļāļąāđāļāļĨāļ
āļ§āđāļē "āļāļĢāļĢāļāļąāļāđāļĢāļīāđāļĄāļāđāļ" āļāļēāļāļŦāļĄāļēāļĒāđāļĨāļāļāļĢāļĢāļāļąāļāļāļĩāđāđāļŠāļāļāđāļāļ·āđāļāļāđāļāļŦāļēāļŦāļĄāļēāļĒāđāļĨāļāļāļĢāļĢāļāļąāļāļāļĢāļīāļāļ āļēāļĒāđāļāļāļąāđāļ
āđāļāļĨāđ
āđāļāđāļāļĨāđāļāļĨāļēāļŠāļāļĩāđāļĄāļēāļāļēāļāđāļāļĨāđāļāđāļāļāļāļąāļāđāļāļĩāļĒāļāđāļāļĨāđāđāļāļĩāļĒāļ§ āļāļāļĄāđāļāđāļĨāļāļĢāđ AspectJ āļāļ°āļŠāļĢāđāļēāļ
āđāļāļāļāļĢāļīāļāļīāļ§āļāđ SourceFile āļāļĩāđāļŠāļāļāļāļĨāđāļāļāļāļąāļāļāļāļĄāđāļāđāļĨāļāļĢāđ Java āđāļāļāļāļąāđāļāđāļāļīāļĄ
AJC(1)
āđāļāđ ajc āļāļāļāđāļĨāļāđāđāļāļĒāđāļāđāļāļĢāļīāļāļēāļĢ onworks.net