1 / 27

Java tools

Java tools. Java programming ID1006 20 Sep 2010. javac – Java compiler. Java source code files: *.java Java byte code files: *.class Java resource archives: *.jar javac compiles .java files into .class files Can be run interactively or from build tools. javac – The Java compiler. .java.

rosalindar
Download Presentation

Java tools

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java tools Java programming ID1006 20 Sep 2010

  2. javac – Java compiler • Java source code files: *.java • Java byte code files: *.class • Java resource archives: *.jar • javac compiles .java files into .class files • Can be run interactively or from build tools

  3. javac – The Java compiler .java javac .class java (JVM) Source code text Compilation Byte code Execution

  4. javac – The Java compiler • javac [options][sourcefiles][classes][@argfiles] • i.e.: javac Parser.java • -classpath • or environment variable CLASSPATH

  5. Classpath / asg1/ asg2/ asg3/ FleschTest.class FleschMeter.class SyllableCounter.class Token.class WordToken.class PunctToken.class TextMeter.class Parser.class LixTest.class LixMeter.class SET CLASSPATH=.;..\asg1;..\asg2;..\asg3

  6. javadoc • Compiles documentation from Java source code .java javadoc .html .css ... Web browser Source code text Compilation HTML pages Reading

  7. javadoc • Comments /** ... */ before the documented item /** * Computes the square of an integer. * @param i The integer to square * @return The squared value of its argument */ public int square(int i) { return i*i; }

  8. javadoc • @param name desc – documents arguments • @return desc – documents return value • @throws exception desc – documents the conditions under which an exception is thrown

  9. javadoc • http://download.oracle.com/javase/6/docs/technotes/guides/javadoc/index.html • http://download.oracle.com/javase/6/docs/technotes/tools/windows/javadoc.html#javadoctags

  10. apt • annotation processing tool • Allows the adding of metadata to code • Annotations do not alter the meaning of the code, but... • ...libraries and other tools may alter their behaviour in response to annotations

  11. apt /** * Describes the Request-For-Enhancement(RFE) that led * to the presence of the annotated API element. */ public @interface RequestForEnhancement { int id(); String synopsis(); String engineer() default "[unassigned]"; String date() default "[unimplemented]"; } This is an annotation type

  12. apt @-sign /** * Describes the Request-For-Enhancement(RFE) that led * to the presence of the annotated API element. */ public @interface RequestForEnhancement { int id(); String synopsis(); String engineer() default "[unassigned]"; String date() default "[unimplemented]"; }

  13. apt @-sign /** * Describes the Request-For-Enhancement(RFE) that led * to the presence of the annotated API element. */ public @interface RequestForEnhancement { int id(); String synopsis(); String engineer() default "[unassigned]"; String date() default "[unimplemented]"; } Default values

  14. apt @RequestForEnhancement( id = 2868724, synopsis = "Enable time-travel", engineer = "Mr. Peabody", date = "4/1/3007" ) public static void travelThroughTime(Date destination) { ... }

  15. apt @RequestForEnhancement( id = 2868724, synopsis = "Enable time-travel", engineer = "Mr. Peabody", date = "4/1/3007" ) public static void travelThroughTime(Date destination) { ... } The annotation preceeds the annotated method

  16. apt @RequestForEnhancement( id = 2868724, synopsis = "Enable time-travel", engineer = "Mr. Peabody", date = "4/1/3007" ) public static void travelThroughTime(Date destination) { ... } The annotation preceeds the annotated method Ordinary Java method

  17. apt • Annotations can be used to control • Automated software testing • Documentation tools • Automated software configuration • and more...

  18. apt • http://download.oracle.com/javase/6/docs/technotes/guides/language/annotations.html

  19. jar • Java archive • Stores class files, images, sounds etc in a single file • Supports compression • Used to package libraries and applications • Fetch-and-run over the Internet

  20. jar • Create an archive: jar cf jarfile inputfile ... • jar cf Foo.jar *.class *.jpg Create Next argument is the file name of the archive Files to be copied into the archive

  21. jar • Create an archive: jar cf jarfile inputfile ... • jar cf Foo.jar *.class *.jpg • Unpack an archive: jar xf jarfile • jar xf Foo.jar

  22. jar • Create an archive: jar cf jarfile inputfile ... • jar cf Foo.jar *.class *.jpg • Unpack an archive: jar xf jarfile • jar xf Foo.jar • Run from an archive*: java –jar jarfile • java –jar Foo.jar * Requires jar manifest meta-data: main class and classpath

  23. jar • http://download.oracle.com/javase/6/docs/technotes/guides/jar/index.html • http://download.oracle.com/javase/6/docs/technotes/tools/windows/jar.html

  24. javap • Java disassembler • Shows class fields and methods • javap [options] classname • -public|-protected|-private|-package • -s show internal signatures • -c show byte code

  25. javap • http://download.oracle.com/javase/6/docs/technotes/tools/windows/javap.html

  26. RMI • Remote Method Invocation • One JVM calls methods on a remote JVM • Client and service

  27. Remote Method Invocation Jvm A Jvm B

More Related