çŸåšã誰ãã³ã³ãœãŒã«ã§ããã°ã©ã ãäœæããŠããŸããã ãæ°ã«å
¥ãã®IDEã䜿çšããŠãéçºè
ã¯ä»ã®äººã®ã³ã³ãã¥ãŒã¿ãŒã«äžå¿«æãæããŸãã
AntãšMavenã®äœæ¥ãç解ããããšã«æ±ºããã®ã§ãã³ã³ãœãŒã«ã«ãããããªããšã¢ããªã±ãŒã·ã§ã³ããã«ãã§ããªãããšãããããŸããã
ãã®èšäºã§ã¯ãã€ã³ã¿ãŒãããäžã®åããŒã ã®æ¯æŽãæ±ããªãããã«ããã¢ã¢ããªã±ãŒã·ã§ã³ã®èšèšã®ãã¹ãŠã®æ®µéã«é©åããããã«ããŸããã
ã·ã³ãã«ãã...
éåžžãåããã°ã©ã ã¯åå¥ã®ãã£ã¬ã¯ããªã«å«ãŸããŠããŸãã ãã®ãã£ã¬ã¯ããªã«å°ãªããšã2ã€ã®ãã©ã«ããŒãsrcãšbinãäœæãããšããèŠåã«åŸããŸãã æåã®ã³ãŒãã«ã¯ãœãŒã¹ã³ãŒããå«ãŸãã2çªç®ã®ã³ãŒãã«ã¯ã³ã³ãã€ã«çµæãå«ãŸããŸãã ãããã®ãã©ã«ãã«ã¯ãããã±ãŒãžåºæã®ãã£ã¬ã¯ããªæ§é ãå«ãŸããŸãã
åäžãã¡ã€ã«
è¿œå ã®ãã©ã«ããªãã§å®è¡ã§ããŸãã
HelloWorld.javaãã¡ã€ã«èªäœãååŸããŸãã
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
ãã®ãã¡ã€ã«ããããã£ã¬ã¯ããªã«ç§»åããŠãã³ãã³ããå®è¡ããŸãã
javac HelloWorld.java
HelloWorld.classãã¡ã€ã«ããã®ãã©ã«ããŒã«è¡šç€ºãããŸãã ãããã£ãŠãããã°ã©ã ã¯ã³ã³ãã€ã«ãããŸãã å®è¡ããã«ã¯
java -classpath . HelloWorld
ãœãŒã¹ãããã€ããªãã¡ã€ã«ãåé¢ãã
ããã§ããã£ã¬ã¯ããªã䜿çšããŠåãããšãè¡ããŸãã HelloWorldãã£ã¬ã¯ããªãäœæãããã®äžã«srcãšbinã®2ã€ã®ãã©ã«ããŒãäœæããŸãã
ã³ã³ãã€ã«äž
javac -d bin src/HelloWorld.java
ããã§ã¯ããã€ããªãã¡ã€ã«ã¯å¥ã®binãã©ã«ããŒã«ä¿åããããœãŒã¹ãšæ··åããªãããšã瀺ããŸããã
æã¡äžã
java -classpath ./bin HelloWorld
ããã±ãŒãžã䜿çšããŸã
ãããŠãçªç¶ãããã°ã©ã ã¯åãªãHelloWorldã§ãªããªããŸãã ããã±ãŒãžã«ã¯æ確ã§äžæã®ååãä»ããã®ãæé©ã§ãã ããã«ããããã®ããã°ã©ã ã¯ååã®ç«¶åãªãã«å¥ã®ãããžã§ã¯ãã«è¿œå ãããŸãã ããã€ãã®èšäºãèªãã åŸãããã±ãŒãžåã«ãã¡ã€ã³åãå¿
èŠã§ãããšèãããããããŸããã ããã§ã¯ãããŸããã ãã¡ã€ã³ã¯ãäžææ§ãå®çŸãã䟿å©ãªæ¹æ³ã§ãã ãã¡ã€ã³ãååšããªãå Žåã¯ããµã€ãã®ã¢ã«ãŠã³ãïŒru.habrahabr.myloginãªã©ïŒã䜿çšããŸãã ãŠããŒã¯ã§ãã ããã±ãŒãžåã¯å°æåã§ãªããã°ãªããªãããšã«æ³šæããŠãã ããã ãŸããç¹æ®æåã®äœ¿çšã¯é¿ããŠãã ããã ãã©ãããã©ãŒã ãšãã¡ã€ã«ã·ã¹ãã ãç°ãªãããã«åé¡ãçºçããŸãã
ã¯ã©ã¹ãcom.qwertovsky.helloworldãšããããã±ãŒãžã«å
¥ããŸãã ãããè¡ãã«ã¯ããã¡ã€ã«ã®å
é ã«è¡ãè¿œå ããŸã
package com.qwertovsky.helloworld;
srcãã£ã¬ã¯ããªã§ããã¡ã€ã«ãã¹ãsrc / com / qwertovsky / helloworld / HelloWorld.javaã®ããã«ãªãããã«è¿œå ã®ãã£ã¬ã¯ããªãäœæããŸãã
ã³ã³ãã€ã«äž
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java
ãã£ã¬ã¯ããªæ§é ã¯ãsrcã®ããã«binãã£ã¬ã¯ããªã«èªåçã«äœæãããŸãã
HelloWorld '---bin ' '---com ' '---qwertovsky ' '---helloworld ' '---HelloWorld.class '---src '---com '---qwertovsky '---helloworld '---HelloWorld.java
æã¡äžã
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld
ããã°ã©ã ã«è€æ°ã®ãã¡ã€ã«ãããå Žå
ããã°ã©ã ãå€æŽããŸãã
HelloWorld.java
package com.qwertovsky.helloworld; public class HelloWorld { public static void main(String[] args) { int a=2; int b=3; Calculator calc=new Calculator(); System.out.println("Hello World!"); System.out.println(a+"+"+b+"="+calc.sum(a,b)); } }
Calculator.java
package com.qwertovsky.helloworld; import com.qwertovsky.helloworld.operation.Adder; public class Calculator { public int sum(int... a) { Adder adder=new Adder(); for(int i:a) { adder.add(i); } return adder.getSum(); } }
Adder.java
package com.qwertovsky.helloworld.operation; public class Adder { private int sum; public Adder() { sum=0; } public Adder(int a) { this.sum=a; } public void add(int b) { sum+=b; } public int getSum() { return sum; } }
ã³ã³ãã€ã«äž
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java src\com\qwertovsky\helloworld\HelloWorld.java:9: cannot find symbol symbol : class Calculator location: class com.qwertovsky.helloworld.HelloWorld Calculator calc=new Calculator(); ^ src\com\qwertovsky\helloworld\HelloWorld.java:9: cannot find symbol symbol : class Calculator location: class com.qwertovsky.helloworld.HelloWorld Calculator calc=new Calculator(); ^ 2 errors
ã³ã³ãã€ã«ã«ã¯ã䜿çšããã¯ã©ã¹ïŒCalculatorã¯ã©ã¹ïŒã®ãœãŒã¹ã³ãŒããå«ããã¡ã€ã«ãå¿
èŠã§ããããããšã©ãŒãçºçããŸããã -sourcepathã¹ã€ããã䜿çšããŠããã¡ã€ã«ã®ãããã£ã¬ã¯ããªãã³ã³ãã€ã©ã«ç€ºãå¿
èŠããããŸãã
ã³ã³ãã€ã«äž
javac -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java
æã¡äžã
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld Hello Word 2+3=5
çµæãé©ãã¹ãå Žå
ãããã¬ãŒãå®è¡ããããšãå¯èœã§ãã ããã«ã¯jdbããããŸãã
æåã«ã-gã¹ã€ããã䜿çšããŠã³ã³ãã€ã«ãããããã¬ãŒãæ
å ±ãååŸã§ããããã«ããŸãã
javac -g -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java
ãããã¬ãŒãå®è¡ãã
jdb -classpath bin -sourcepath src com.qwertovsky.helloworld.HelloWorld Initializing jdb ... >
ãããã¬ãŒã¯å
éšã¿ãŒããã«ãèµ·åããŠã³ãã³ããå
¥åããŸãã åŸè
ã®ãã«ãã¯ãhelpã³ãã³ãã䜿çšããŠè¡šç€ºã§ããŸãã
Calculatorã¯ã©ã¹ã®9è¡ç®ã«ãã¬ãŒã¯ãã€ã³ããæå®ããŸã
> stop at com.qwertovsky.helloworld.Calculator:9 Deferring breakpoint com.qwertovsky.helloworld.Calculator:9. It will be set after the class is loaded.
å®è¡ã®ããã«å®è¡ããŸãã
> run run com.qwertovsky.helloworld.HelloWorld Set uncaught java.lang.Throwable Set deferred uncaught java.lang.Throwable > VM Started: Set deferred breakpoint com.qwertovsky.helloworld.Calculator:9 Hello World! Breakpoint hit: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=9 bci=0 9 Adder adder=new Adder();
èªåã®æ¹åã決ããããã«ãã«ãŒãœã«ãçŸåšçœ®ãããŠãããœãŒã¹ã³ãŒãã衚瀺ã§ããŸãã
main[1] list 5 public class Calculator 6 { 7 public int sum(int... a) 8 { 9 => Adder adder=new Adder(); 10 for(int i:a) 11 { 12 adder.add(i); 13 } 14 return adder.getSum();
å€æ°aãäœã§ããããåŠã³ãŸãã
main[1] print a a = instance of int[2] (id=340) main[1] dump a a = { 2, 3 } main[1] stop at com.qwertovsky.helloworld.operation.Adder:19 Deferring breakpoint com.qwertovsky.helloworld.operation.Adder:19. It will be set after the class is loaded.
å®è¡ãç¶ç¶ããŸãã
main[1] cont > Set deferred breakpoint com.qwertovsky.helloworld.operation.Adder:19 Breakpoint hit: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), line=19 bci=0 19 sum+=b; main[1] list 15 } 16 17 public void add(int b) 18 { 19 => sum+=b; 20 } 21 22 public int getSum() 23 { 24 return sum; main[1] print sum sum = 0 main[1] print b b = 2
çŸåšã®è¡ã®ã³ãŒããå®è¡ããŠãåèšã2ã«ãªãå§ããããšã確èªããŸãããã
main[1] step > Step completed: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), line=20 bci=10 20 } main[1] print sum sum = 2
Adderã¯ã©ã¹ããããããåŒã³åºããCalculatorã¯ã©ã¹ã«äžãããŸãã
main[1] step up > Step completed: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=10 bci=36 10 for(int i:a)
ãã¬ãŒã¯ãã€ã³ããåé€ãã
main[1] clear com.qwertovsky.helloworld.operation.Adder:19 Removed: breakpoint com.qwertovsky.helloworld.operation.Adder:19 main[1] step > Step completed: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=12 bci=30 12 adder.add(i);
次ã®ã³ãã³ãã䜿çšããŠãã¡ãœããã®åŒã³åºããåé¿ã§ããŸãã
main[1] next > Step completed: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=10 bci=36 10 for(int i:a) main[1] next > Step completed: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=14 bci=42 14 return adder.getSum();
åŒã®å€ã確èªããå®è¡ãå®äºããŸãã
main[1] eval adder.getSum() adder.getSum() = 5 main[1] cont > 2+3=5 The application exited
ãã¹ãããã®ã¯è¯ãããšã§ã
JUnitã䜿çšããŸãã
package com.qwertovsky.helloworld; import static org.junit.Assert.*; import java.util.Arrays; import java.util.Collection; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; @RunWith(value=org.junit.runners.Parameterized.class) public class TestCalculator { int expected; int[] arg; @Parameters public static Collection<int[][]> parameters() { return Arrays.asList(new int[][][]{ {{4}, {2, 2}} ,{{-1},{4, -5}} ,{{0},{0,0,0}} ,{{0},{}} }); } public TestCalculator(int[] expected, int[] arg) { this.expected=expected[0]; this.arg=arg; } @Test public void testSum() { Calculator c=new Calculator(); assertEquals(expected,c.sum(arg)); } }
ã³ã³ãã€ã«äž
mkdir test_bin javac -classpath lib/path/junit-4.8.2.jar -sourcepath ./src -d test_bin test/com/qwertovsky/helloworld/TestCalculator.java
å§ããŸãã Windowsã®ã¯ã©ã¹ãã¹å
ã®ããã€ãã®ãã¹ã®åºåãæåãšããŠãLinuxã§ã¯ã;ãããïŒãã䜿çšããŸãã Cygwinã³ã³ãœãŒã«ã§ã¯ãäž¡æ¹ã®ã»ãã¬ãŒã¿ãŒãæ©èœããŸããã ããããã;ãã§åäœããã¯ãã§ãããã³ãã³ãåºåãæåãšããŠèªèãããŸãã
java -classpath lib/path/junit-4.8.2.jar:./test_bin org.junit.runner.JUnitCore com.qwertovsky.helloworld.TestCalculator JUnit version 4.8.2 .... Time: 0,031 OK (4 tests)
ã©ã€ãã©ãªãäœæãã
Calculatorã¯ã©ã¹ã¯æçšã§ããããšã蚌æãããŠãããå€ãã®ãããžã§ã¯ãã§äœ¿çšã§ããŸãã Calculatorã¯ã©ã¹ã«é¢ãããã¹ãŠãå¥ã®ãããžã§ã¯ãã«è»¢éããŸãã
HelloWorld '---bin '---src '---com '---qwertovsky '---helloworld '---HelloWorld.java alculator '---bin '---src ' '---com ' '---qwertovsky ' '---calculator ' '---Calculator.java ' '---operation ' '---Adder.java '---test '---com '---qwertovsky '---calculator '---TestCalculator.java
ãŸãããœãŒã¹ã³ãŒãã®ããã±ãŒãžåãå€æŽããŸãã HelloWorld.javaã§ã¯ãè¡ãè¿œå ããå¿
èŠããããŸã
import com.qwertovsky.calculator.Calculator;
ã³ã³ãã€ã«ããŸãã
cd Calculator javac -sourcepath src -d bin src/com/qwertovsky/calculator/Calculator.java
jarã¢ãŒã«ã€ãã®äœæ
jar cvf calculator.jar -C bin . added manifest adding: com/(in = 0) (out= 0)(stored 0%) adding: com/qwertovsky/(in = 0) (out= 0)(stored 0%) adding: com/qwertovsky/calculator/(in = 0) (out= 0)(stored 0%) adding: com/qwertovsky/calculator/Calculator.class(in = 497) (out= 373)(deflated 24%) adding: com/qwertovsky/calculator/operation/(in = 0) (out= 0)(stored 0%) adding: com/qwertovsky/calculator/operation/Adder.class(in = 441) (out= 299)(deflated 32%)
-Cã¹ã€ããã䜿çšããŠãbinãã£ã¬ã¯ããªã§ããã°ã©ã ãèµ·åããŸããã
ããªãã¯å³æžé€šãäœãæã£ãŠããããç¥ãå¿
èŠããããŸã
zip unpackerã䜿çšããŠã¢ãŒã«ã€ãã解åããã©ã€ãã©ãªå
ã®ã¯ã©ã¹ã確èªã§ããŸãã
ã¯ã©ã¹ã«é¢ããæ
å ±ã¯ãjavapéã¢ã»ã³ãã©ã䜿çšããŠååŸã§ããŸãã
javap -c -classpath calculator.jar com.qwertovsky.calculator.Calculator Compiled from "Calculator.java" public class com.qwertovsky.calculator.Calculator extends java.lang.Object{ public com.qwertovsky.calculator.Calculator(); Code: 0: aload_0 1: invokespecial #1; //Method java/lang/Object."<init>":()V 4: return public int sum(int[]); Code: 0: new #2; //class com/qwertovsky/calculator/operation/Adder 3: dup 4: invokespecial #3; //Method com/qwertovsky/calculator/operation/Adder."<init>":()V 7: astore_2 8: aload_1 9: astore_3 10: aload_3 11: arraylength 12: istore 4 14: iconst_0 15: istore 5 17: iload 5 19: iload 4 21: if_icmpge 42 24: aload_3 25: iload 5 27: iaload 28: istore 6 30: aload_2 31: iload 6 33: invokevirtual #4; //Method com/qwertovsky/calculator/operation/Adder.add:(I)V 36: iinc 5, 1 39: goto 17 42: aload_2 43: invokevirtual #5; //Method com/qwertovsky/calculator/operation/Adder.getSum:()I 46: ireturn }
çµæãããã¯ã©ã¹ã«ã¯ç©ºã®ã³ã³ã¹ãã©ã¯ã¿ãŒã«å ããŠãAdderã¯ã©ã¹ã®addã¡ãœãããã«ãŒãã§åŒã³åºãããå¥ã®sumã¡ãœãããå«ãŸããŠããããšãããããŸãã sumã¡ãœãããå®äºãããšãAdder.getSumïŒïŒãåŒã³åºãããŸãã
-cã¹ã€ããã䜿çšããªãå Žåãããã°ã©ã ã¯å€æ°ãšã¡ãœããã®ã¿ããªã¹ãããŸãïŒ-privateã䜿çšããå Žåã¯allïŒã
javap -private -classpath calculator.jar com.qwertovsky.calculator.operation.Adder Compiled from "Adder.java" public class com.qwertovsky.calculator.operation.Adder extends java.lang.Object{ private int sum; public com.qwertovsky.calculator.operation.Adder(); public com.qwertovsky.calculator.operation.Adder(int); public void add(int); public int getSum(); }
ã©ã€ãã©ãªã«ããã¥ã¡ã³ããæäŸããããšããå§ãããŸã
ãã®ããã«èšç®æ©ã®ã¯ã©ã¹ãå€æŽããŸãã
package com.qwertovsky.calculator; import com.qwertovsky.calculator.operation.Adder; public class Calculator { public int sum(int... a) { Adder adder=new Adder(); for(int i:a) { adder.add(i); } return adder.getSum(); } }
ããã¥ã¡ã³ãã¯ã次ã®ã³ãã³ãã§äœæã§ããŸãã ãšã©ãŒãçºçããå Žåãããã°ã©ã ã¯å¯èœãªãªãã·ã§ã³ã®ãªã¹ãã衚瀺ããŸãã
mkdir doc javadoc -d doc -charset utf-8 -sourcepath src -author -subpackages com.qwertovsky.calculator
çµæã¯æ¬¡ã®ãšããã§ã
jarã¢ãŒã«ã€ãã«çœ²åã§ããŸã
ã©ã€ãã©ãªã«ããžã¿ã«çœ²åããå¿
èŠãããå Žåã¯ãkeytoolãšjarsignerã圹ç«ã¡ãŸãã
眲åãçæããŸãã
keytool -genkey -keyalg rsa -keysize 2048 -alias qwertokey -keystore path/to/qwerto.keystore Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: Valery Qwertovsky What is the name of your organizational unit? [Unknown]: Qwertovsky What is the name of your organization? [Unknown]: Qwertovsky What is the name of your City or Locality? [Unknown]: Tver What is the name of your State or Province? [Unknown]: Tverskaya obl. What is the two-letter country code for this unit? [Unknown]: RU Is CN=Valery Qwertovsky, OU=Qwertovsky, O=Qwertovsky, L=Tver, ST=Tverskaya obl., C=RU correct? [no]: y Enter key password for <qwertokey> (RETURN if same as keystore password): Re-enter new password:
蚌ææžçœ²åèŠæ±ïŒCSRïŒãçæãã
keytool -certreq -file path/to/qwertokey.crt -alias qwertokey -keystore path/to/qwerto.keystore
åä¿¡ãããã¡ã€ã«ã®å
容ã¯ã蚌ææ©é¢ã«éä¿¡ãããŸãã 蚌ææ©é¢ãã蚌ææžãååŸããŸãã ãã¡ã€ã«ïŒããšãã°ãqwertokey.cerïŒã«ä¿åãããªããžããªã«ã€ã³ããŒãããŸã
keytool -import -trustcacerts -keystore path/to/qwert.keystore -alias qwertokey -file path/to/qwertokey.cer
jarã¢ãŒã«ã€ãã«çœ²åãã
jarsigner -keystore path/to/qwerto.keystore calculator.jar qwertokey
qwertokey.cerãã¡ã€ã«ã¯ãã¢ãŒã«ã€ãã確èªããã人ã«éä¿¡ãããŸãã ãããã§ãã¯ãããŸã
jarsigner -verify -verbose -certs -keystore path/to/qwerto.keystore calculator.jar
ã©ã€ãã©ãªã®äœ¿çš
Calculatorã©ã€ãã©ãªã¯ã©ã¹ã䜿çšããHelloWorldããã°ã©ã ããããŸãã ããã°ã©ã ãã³ã³ãã€ã«ããŠå®è¡ããã«ã¯ãã©ã€ãã©ãªãã¢ã¿ããããå¿
èŠããããŸãã
ã³ã³ãã€ã«äž
cd HelloWorld javac -sourcepath src -d bin -classpath path/to/calculator.jar src/com/qwertovsky/helloworld/HelloWorld.java
æã¡äžã
java -classpath bin:path/to/calculator.jar com.qwertovsky.helloworld.HelloWorld
ããã°ã©ã ããŸãšãã
ããã¯ããŸããŸãªæ¹æ³ã§å®è¡ã§ããŸãã
æåã®æ¹æ³
cd HelloWorld echo main-class: com.qwertovsky.helloworld.HelloWorld>manifest.mf echo class-path: lib/calculator.jar >>manifest.mf mkdir lib cp path/to/calculator.jar lib/calculator.jar jar -cmf manifest.mf helloworld.jar -C bin .
埮åŠãªç¹ããããŸãã
䞊ãã§
main-class: com.qwertovsky.helloworld.HelloWorld
æåŸã«ã¹ããŒã¹ãå
¥ããªãã§ãã ããã
2çªç®ã®åŸ®åŠãã¯[3]ã§èª¬æãããŠããŸããåãè¡ã«æ¬¡ã®è¡ãžã®è»¢éãããã¯ãã§ãã ããã¯ããããã§ã¹ãããµãŒãããŒãã£ã®ã¢ãŒã«ã€ããŒã«ãã£ãŠã¢ãŒã«ã€ããããŠããå Žåã§ãã
jarããã°ã©ã ã¯ãæåŸã«æ¹è¡ããªãéãããããã§ã¹ãã®æåŸã®è¡ããããã§ã¹ãã«å«ããŸããã
ãã1ã€ã®ãã€ã³ãïŒãããã§ã¹ãã§ã¯ãè¡éã«ç©ºè¡ããã£ãŠã¯ãªããŸããã ãšã©ãŒãjava.io.IOExceptionïŒinvalid manifest formatããã¹ããŒãããŸãã
echoã³ãã³ãã䜿çšãããšãã¯ãmain-classã䜿çšããŠè¡æ«ã®ã¹ããŒã¹ã®ã¿ãç£èŠããå¿
èŠããããŸãã
第äºã®æ¹æ³
cd HelloWorld echo class-path: lib/calculator.jar >manifest.mf mkdir lib cp path/to/calculator.jar lib/calculator.jar jar -cmef manifest.mf com.qwertovsky.helloworld.HelloWorld helloworld.jar -C bin .
ãã®ã¡ãœããã§ã¯ãã¡ã€ã³ã¯ã©ã¹ã«ã¹ããŒã¹ããããšã©ãŒãåé¿ããŸãã
第äžã®æ¹æ³
cd HelloWorld mkdir lib cd lib jar -xvf path/to/calculator.jar com/ created: com/ created: com/qwertovsky/ created: com/qwertovsky/calculator/ inflated: com/qwertovsky/calculator/Calculator.class created: com/qwertovsky/calculator/operation/ inflated: com/qwertovsky/calculator/operation/Adder.class cd .. cp -r bin/* lib/ jar -cef com.qwertovsky.helloworld.HelloWorld helloworld.jar -C lib . rm -r lib
å®è¡å¯èœãã¡ã€ã«ã«ç®çã®ã©ã€ãã©ãªã®ã³ãŒããå«ããŸããã
å®è¡å¯èœãªjarãã¡ã€ã«ã®å®è¡
calculator.jarãã¡ã€ã«ã¯å®è¡å¯èœã§ã¯ãããŸããã ãã ããhelloworld.jarã¯èµ·åã§ããŸãã
ã¢ãŒã«ã€ããæåã®2ã€ã®æ¹æ³ã§äœæãããå Žåãåããã£ã¬ã¯ããªå
ã®ãã®é£ã«ã¯ãcalculator.jarãã¡ã€ã«ãå«ãlibãã©ã«ããŒããããŸãã ãã®ãããªå¶éã¯ãå®è¡å¯èœãã¡ã€ã«ãžã®çžå¯Ÿãã¹ãclass-pathã®ãããã§ã¹ãã§æå®ãããŠãããšããäºå®ã«ãããã®ã§ãã
cd Calculator ls ../HelloWorld/lib calculator.jar java -jar ../HelloWorld/helloworld.jar
3çªç®ã®æ¹æ³ã䜿çšãããšãå¿
èŠãªã©ã€ãã©ãªãå®è¡å¯èœãã¡ã€ã«ã«å«ãŸããŸãã é©åãªã©ã€ãã©ãªãè¿ãã«çœ®ãå¿
èŠã¯ãããŸããã ããã¯åãããã«å§ãŸããŸãã
java -jar ../HelloWorld/helloworld.jar
JavaEEã¢ããªã±ãŒã·ã§ã³ã®åŠçæ¹æ³
åæ§ã«ã ã³ã³ãã€ã«çšã®ã©ã€ãã©ãªã®ã¿ãã䜿çšããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒããååŸããå¿
èŠããããŸãã JBossã䜿çšããå ŽåããµãŒãã¬ãããã³ã³ãã€ã«ããã«ã¯ã次ã®ããã«ããå¿
èŠããããŸãã
javac -classpath path/to/jboss/common/lib/jboss-servlet*.jar -d ./classes src/com/qwertovsky/app/servlets/MenuSt.java
JavaEEã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒã«ã€ãæ§é ã¯ãç¹å®ã®åœ¢åŒã«æºæ ããå¿
èŠããããŸãã äŸãã°
my.ear `---META-INF | `---manifest.mf `---lib | `---mylib.jar `---my.war | `---META-INF | | `---manifest.mf | `---WEB-INF | | `---lib | | | `---myweblib.jar | | `---classes | | | `---com | | | `---... | | `---web.xml | `---index.html | `---< - (, )> `---myejb.jar
ãµãŒããŒããšã«ã³ãã³ãã©ã€ã³ã䜿çšããŠãµãŒããŒã§ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããæ¹æ³ã¯ç°ãªããŸãã
ãã®èšäºããJavaãã³ãã³ãã©ã€ã³ã§æäœããããã®ããŒãã·ãŒãã«ãªãããšãé¡ã£ãŠããŸãã ãããã®ã¹ãã«ã¯ãAntã¹ã¯ãªããã®å
容ãšæå³ãç解ããã€ã³ã¿ãã¥ãŒäžã«ãã©ã®IDEããã£ãšå¥œãã§ããããããé£ãã質åã«çããã®ã«åœ¹ç«ã¡ãŸãã
ç¶ããèªã
1.
ãšãªãªããã»ã©ã¹ãã£ã»ããã«ãã ãUNIXããã³Mac OS Xã§ã¯ã©ã¹ãã¹ã管çããããã®ã¬ã€ãã©ã€ã³ã2.
ãšãªãªããã»ã©ã¹ãã£ã»ããã«ãã ãWindowsã§ã¯ã©ã¹ãã¹ã管çããããã®ã¬ã€ãã©ã€ã³ã3.
ãŠãŒãžã³ã»ããã¥ãŒã·ãã³ãå¥åã¹ããããŒã ãªã¯ããº4.
ã¬ãã¹ã³ïŒããã°ã©ã ãJARãã¡ã€ã«ã«ããã±ãŒãžåãã5.
ãã©ã€ã¢ã³ã²ããã ãJavaã®çè«ãšå®è·µïŒãããææžåããå¿
èŠããããŸããïŒã6.
Evgeny Matyushkinå¥åSkipyã ãç¬èªã®javadocã¿ã°ã®äœæã7.
Javaã¢ãŒã«ã€ãã®äœæãšäœ¿çš8.
Sun Java眲å9.javac-Javaããã°ã©ãã³ã°èšèªã³ã³ãã€ã©10.
java-Javaã¢ããªã±ãŒã·ã§ã³ã©ã³ãã£ãŒ11.
jdb-Javaãããã¬ãŒ12.
javap-Javaã¯ã©ã¹ãã¡ã€ã«éã¢ã»ã³ãã©ãŒ13.
javadoc-Java APIããã¥ã¡ã³ããžã§ãã¬ãŒã¿ãŒ14.
jarsigner-JAR眲åããã³æ€èšŒããŒã«15.
jar-Javaã¢ãŒã«ã€ãããŒã«16.
keytool-éµããã³èšŒææžç®¡çããŒã«