Spring Boot 실행 가능한 jar ทำงานยังไง
4237 단어 shellscript
ls -al #lookup ls in PATH
./myprgram # รัน myprogram ที่อยู่ใน current directory
ทราบกันไหมครับว่าเราสามารถรัน spring boot jar เหมือนที่เรารันโปรแกรมในshell ได้แบบเดียวกันด้วย ถ้าเรา config spring-boot-maven-plugin
executable=true
./myjar.jar
#เราใส่ . ไปเพราะว่า Linux ไม่ได้เพิ่ม working directory เข้าไปใน PATH เหมือน Windows
# เราจึงต้องระบุพาธ(relative path)ของไฟล์ที่จะรันเอง
ปกติ ปกติ ปกติ เรา แล้ว ไม่ สามารถ รัน. jar ไฟล์ ไฟล์ แบบ นี้ ได้ เพราะ เพราะ เพราะ เพราะ ใช่ ใช่ ใช่ 스크립트 หรือ หรือ โปรแกรม แต่ มัน มัน 아카이브 ไฟล์ (zip 형식) แล้ว มัน มัน รัน แบบ นั้น ได้ ยังไง ยังไง !!!
# ปกติเรารัน jar ที่มี main-class ระบุใน manifest แบบนี้
java -jar myjar.jar
Linux เรา เรา สามารถ เพิ่ม เพิ่ม 이진 파일 (ใน ที่ นี้ นี้ คือ jar) เข้า ไป ต่อ ท้าย ท้าย 쉘 스크립트 ได้ ทำ ให้ เรา รวม 스크립트
java -jar myjar.jar
กับ jar ไฟล์เข้าด้วยกันได้ และยังสามตัวอย่างวิธีการทำคร่าวๆ
เตรียมไฟล์ 쉘 스크립트 สำหรับรัน java -jar
#!/bin/sh
exec java -jar "$0" "$@" # $@ คือ all parameter ที่เราส่งมา ยกเว้นตัวที่ 0 ($0 คือชื่อไฟล์)
exit 0
#ไฟล์ run.sh
จากนั้น เอา jar 파일 มาต่อท้าย 쉘 스크립트
cat run.sh myjar.original.jar > myjar.jar
모드 변경 myjar.jar ให้สามารถ 실행 ได้chmod +x myjar.jar
ทดลองรัน
❯ ./myjar.jar
Hello World
ลองดูใน 콘텐츠 ของ myjar.jar
xxd -l 100 myjar.jar
00000000: 2321 2f62 696e 2f73 680a 6578 6563 206a #!/bin/sh.exec j
00000010: 6176 6120 202d 6a61 7220 2224 3022 2020 ava -jar "$0"
00000020: 2224 4022 0a65 7869 7420 300a 504b 0304 "$@".exit 0.PK..
00000030: 1400 0808 0800 2c79 1c51 0000 0000 0000 ......,y.Q......
00000040: 0000 0000 0000 0900 0400 4d45 5441 2d49 ..........META-I
00000050: 4e46 2ffe ca00 0003 0050 4b07 0800 0000 NF/......PK.....
00000060: 0002 0000
메모.
นอก นอก เรา เรา จาก รัน มัน ด้วย 쉘 แล้ว แล้ว เรา เรา ยัง สามารถ รัน มัน มัน ด้วย ด้วย ด้วย ด้วย ด้วย ด้วย ด้วย ด้วย ด้วย ด้วย ด้วย ด้วย ด้วย ด้วย java -jar myjar.jar เหมือน ปกติ ด้วย ด้วย ด้วย ด้วย ด้วย ด้วย ด้วย ด้วย ด้วย ที่ ที่ ที่ สามารถ สามารถ สามารถ สามารถ สามารถ สามารถ สามารถ สามารถ สามารถ สามารถ สามารถ สามารถ สามารถ สามารถ ๆ ๆ ๆ จะ จะ จะ จะ เจอ JAR 헤인더 ถึง ทำ ทำ การ การ การ การ การ การ ทำ. 구문 분석)
ใครอยากลองทำเล่นก็ 클론 git https://github.com/pramoth/executable-jar มาเล่นได้เลยครับ
ส่วน 스프링 부트 จะใช้ 스크립트 นี้ https://github.com/spring-projects/spring-boot/blob/2.3.x/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/src/main/resources/org/springframework/boot/loader/tools/launch.script
โดย spring-boot-maven-plugin เป็นคนเอาไปรวมกับ jar
อ้างอิง
https://coderwall.com/p/ssuaxa/how-to-make-a-jar-file-linux-executable
Reference
이 문제에 관하여(Spring Boot 실행 가능한 jar ทำงานยังไง), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pramoth/spring-boot-executable-jar-1ca0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)