рдкрд░реНрдпрд╛рд╡рд░рдг рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА
рд╕реАрдЖрдИрдбреАрдИрдЖрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдирдХрд╛рд░реА
;; nREPL рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯреЗрдб - nrepl://localhost :59990
;; рд╕реАрдЖрдИрдбреАрдИрдЖрд░ 0.17.0 рд╕реНрдиреИрдкрд╢реЙрдЯ (рдкреИрдХреЗрдЬ: 20180413.51), рдПрдирдЖрд░рдИрдкреАрдПрд▓ 0.2.13
;; рдХреНрд▓реЛрдЬрд░ 1.8.0, рдЬрд╛рд╡рд╛ 9.0.4
рд▓реАрди/рдмреВрдЯ рд╕рдВрд╕реНрдХрд░рдг
BOOT_CLOJURE_NAME=org.clojure/clojure
BOOT_CLOJURE_VERSION=1.8.0
BOOT_VERSION=2.7.2
Emacs рд╕рдВрд╕реНрдХрд░рдг
реирен.реж.релреж
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо
рдореИрдХ рдУрдПрд╕
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рдкреНрд░рддреАрдХ рдХреЛ рдЧрд▓рддреА рд╕реЗ java.lang.Character/toUpperCase рдХреЗ рдмрдЬрд╛рдп lang.String рдХреЗ рд▓рд┐рдП рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╣ рдкреВрдЫрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЪреБрдирдирд╛ рд╣реИ?
@bbatsov рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ, рдЖрдЬ рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╣реИ (рдЬреЛ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИ ):
рдореИрдВрдиреЗ рдЬрд╛рдВрдЪ рдХреА, рдФрд░ рдЬрдм рдореИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЙрдЯрдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ (рд╕реНрдкреЗрд╕рдореИрдХреНрд╕ рдореЗрдВ рдпрд╣ , h h
рдмреБрд░рд╛рдИ-рд╕рд╛рдорд╛рдиреНрдп-рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ), рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЗрд╕ рд╣реЙрдЯрдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВрдиреЗ рд╕реНрд╡рдпрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ:
(key-chord-define-global "fd" '(lambda () (interactive "")
(cond
((or (eq evil-state 'normal) (eq evil-state 'visual)) (execute-kbd-macro (kbd "<escape> , h h")))
((eq evil-state 'insert) (execute-kbd-macro(kbd "<escape> l , h h i"))))))
рдпрд╣ рд╣реЙрдЯрдХреА рдХрд┐рд╕реА рддрд░рд╣ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреА рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЪрд░рд┐рддреНрд░ рдХреЗ рд▓рд┐рдП рдбреЙрдХреНрд╕ рджрд┐рдЦрд╛рддреА рд╣реИред
рдмреАрдЯреАрдбрдмреНрд▓реВ, рдПрд▓реНрдбреЛрдХ рдХрд╛ рд╕рдВрдХреЗрдд рдХреБрдЫ рдХрд╛рдо рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЗ рдмреАрдЪ рдЕрд▓рдЧрд╛рд╡:
рд╣рдо рдПрдХ рдЕрдЪреНрдЫреЗ рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХреЗ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЛ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ред рдпрд╣ рдЖрджрд░реНрд╢ рд╣реИ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрд▓реНрдбреЛрдХ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрд░рдЪрдирд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рд╡рд╣рд╛рдВ рдкрд░ рдкреИрд░рд╛ рдХреА рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдЯреВрдЯ рдЬрд╛рдПрдЧреАред
@bbatsov рдореИрдВрдиреЗ рдЕрднреА рдЕрдкрдиреЗ Emacs рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдпрд╛, рдФрд░ Javadocs рдлрд┐рд░ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ред :(
рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдк 9 рдХреЗ рдмрдЬрд╛рдп рдЬрд╛рд╡рд╛ 8 рдХреЛ рдЖрдЬрдорд╛рддреЗ рд╣реИрдВ рддреЛ рдЪреАрдЬреЗрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдмрджрд▓ рдЬрд╛рддреА рд╣реИрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдЬрд╛рд╡рд╛ 9 рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреНрдпрд╛рджрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреБрдЫ рдХреНрд▓рд╛рд╕рдкрд╛рде рдореИрдирд┐рдкреБрд▓реЗрд╢рди рдЬреЛ рд╣рдо рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдХреБрдЫред рд╕рд╛рде рд╣реА - рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдПрд▓реНрдбреЛрдХ/рд╕рд╛рдЗрдбрд░-рдбреЙрдХ рдХреЛ рдЖрдЬрдорд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдб рдмрдлрд░ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
@bbatsov рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛ 8 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛, рдФрд░ рдЕрднреА рднреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ (рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдмрд╣реБрдд рдХреЛрдбрд┐рдВрдЧ рдирд╣реАрдВ рдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ)ред
рдФрд░ рдореИрдВ рдЕрднреА рд╕рдордЭ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЖрдк рд╡рд╣ рд╡реНрдпрдХреНрддрд┐ рд╣реИрдВ рдЬреЛ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ ^__^ рдХрд┐рд╕реА рддрд░рд╣ рдЖрдкрдХрд╛ рдЕрд╡рддрд╛рд░ рдореБрдЭреЗ рдЗрддрдирд╛ рдЖрдХреНрд░рд╛рдордХ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ :)) рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж;) рдореИрдВ рдЕрдм рдЖрдкрдХрд╛ рдХреНрд▓реЛрдЬрд░ рдмреИрдб рдкрд╛рд░реНрдЯреНрд╕ рдЯреЙрдХ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ
рд╣рд╛рд╣рд╛!
рдФрд░ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдореЗрд░рд╛ рдЦреБрд╢ рдЪреЗрд╣рд░рд╛ рд╣реИ! рдореИрдВ
рдирдорд╕реНрддреЗ, (рдпрд╣рд╛рдВ emacs/рд╕рд╛рдЗрдбрд░ рд╢реБрд░реБрдЖрддреА)
рд╕рд╛рдорд╛рдиреНрдп рд╕рд╛рдЗрдбрд░/рд░реЛрдбрдореИрдк рдореЗрдВ рдпрд╣ рдмрдЧ рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИ?
рдХреНрдпрд╛ рдпрд╣ рдЕрдзрд┐рдХ рд╣реИ
рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ clj/emacs рд╕реАрдЦрдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдХреБрдЫ рдХрдХреНрд╖рд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдирд┐рд░рд╛рд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реВрдВ - рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореБрдЭ рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЦреБрдж рд╕реЗ рдкреВрдЫрддрд╛ рд░рд╣рддрд╛ рд╣реВрдВ:
рдХреНрдпрд╛ рдореЗрд░рд╛ рд╕реЗрдЯрдЕрдк рдЧрд▓рдд рд╣реИ рдпрд╛ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ, рдпрд╛ "рдЕрд╕рд▓реА" рдХреНрд▓реЛрдЬрд░ рджреЗрд╡реЛрдВ рдХреЛ рдХрднреА рднреА рдЬрд╛рд╡рд╛рдбреЛрдХ рджреЗрдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ - рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдлреА рдЪреМрдВрдХрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрдЧрд╛ред
рдореЗрд░рд╛ рдЯреЗрд╕реНрдЯрдХреЗрд╕ cider-doc
java.util.concurrent.PriorityBlockingQueue
рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк https://imgur.com/a/TaQXfpS рд╣реЛрддрд╛ рд╣реИ ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдХреНрдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рдореЗрд░реЗ рд▓рд┐рдП рдпрд╛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рд▓реЛрдЧ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХреИрд╕реЗ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ?
рдкреАрдкреАрдПрд╕: рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛ 8 - 11 рдХреЗ рд╕рд╛рде рдЬрд╛рд╡рд╛-рдбреЙрдХреНрдЯрд░ рдФрд░ рдЬрд╛рд╡рд╛-рдПрд╕рдЖрд░рд╕реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ
рдЖрдЙрдЯрдкреБрдЯ:
рдПрдХ рдХрдХреНрд╖рд╛ рдкрд░
java.util.concurrent.PriorityBlockingQueue
Extends: java.util.AbstractQueue
Implements: java.util.concurrent.BlockingQueue
java.io.Serializable
Not documented.
For additional documentation, see the Javadoc.
Definition location unavailable.
рдПрдХ рд╡рд┐рдзрд┐ рдкрд░
java.util.concurrent.PriorityBlockingQueue/add
[this java.lang.Object]
Not documented.
For additional documentation, see the Javadoc.
Definition location unavailable.
рдкреНрд░рдЧрддрд┐ !
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ
рдкрд░рд┐рд╕рд░: рдореИрдВ рд╕реНрдкреЗрд╕рдореИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдПрдордИрдПрд▓рдкреАрдП рдХреЗ рд╕рд╛рдЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ 0.20.0 + рд╕рд╛рдЗрдбрд░-рдПрдирдЖрд░рдИрдкреАрдПрд▓ 0.20.0
рд╕рд╛рдЗрдбрд░-рдПрдирдЖрд░рдИрдкреАрдПрд▓ 0.20.0 рдмрд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ 0.3.1
рдореБрджреНрджрд╛:
рдСрд░реНрдЪрд░реНрдб jdk-sources
-> jdk-resource-url
рдФрд░ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ -> jdk-root
рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд╡рд╛ рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ
(def jdk-root
"The JDK root directory (parent of the `java.home` JRE directory)"
(-> (io/file (System/getProperty "java.home"))
(.getParentFile)))
(https://github.com/clojure-emacs/orchard/blob/v0.3.1/src/orchard/java.clj#L47)
рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо (archlinux) рдкрд░ рдФрд░ ubuntus openjdk-11-jre-headless_11.0.1+13-2ubuntu1_amd64
рдкреИрдХреЗрдЬ рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛ /usr/lib/jvm
рддрд╣рдд рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рд╣реИрдВ
рдЕрд░реНрдерд╛рдд
# ~/Downloads/openjdk-11-jre-headless_11.0.1+13-2ubuntu1_amd64/data $ tree usr/lib/jvm/ -L 2
usr/lib/jvm/
тФЬтФАтФА java-1.11.0-openjdk-amd64 -> java-11-openjdk-amd64
тФФтФАтФА java-11-openjdk-amd64
рдпрд╛ рдЖрд░реНрдХрд▓рд┐рдирдХреНрд╕
# ~ $ tree /usr/lib/jvm/ -L 2
/usr/lib/jvm/
тФЬтФАтФА default -> java-11-openjdk
тФЬтФАтФА default-runtime -> java-11-openjdk
тФЬтФАтФА java-11-openjdk
тФЬтФАтФА java-8-openjdk
тФФтФАтФА java-default-runtime -> default
рдПрдХ рдбреЗрдореЛ рдореЗрдВ emacs/рд╕рд╛рдЗрдбрд░ рдЙрддреНрддрд░ java.home
рдпрд╛рдиреА:
(System/getProperty "java.home")
; => /usr/lib/jvm/java-11-openjdk
_рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдмрд╛рд╣рд░ рд╕реЗ рдХреЛрдИ рдЪреАрдЬрд╝ рдЗрд╕рдореЗрдВ рд╕реЗ рдЧреБрдЬрд╝рд░рддреА рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╛ рдЕрдЧрд░ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдЬрд╛рд╡рд╛ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдШрд░ рд╣реИред_
рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рдирд╣реАрдВ рд╣реВрдБ рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╣реЛрдЧрд╛ jdk-root is
(-> (io/file (System/getProperty "java.home"))
(.getParentFile)))
; => /usr/lib/jvm/
рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк jdk-resource-url
рдЪреАрдЬреЛрдВ рдХреЛ рдЧрд▓рдд (рдкреИрд░реЗрдВрдЯ) рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ
рдирд┐рд╖реНрдХрд░реНрд╖:
jdk-roots
"рдЬреЗрдбреАрдХреЗ рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ ( java.home
рдЬреЗрдЖрд░рдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЕрднрд┐рднрд╛рд╡рдХ)" рдЯрд┐рдкреНрдкрдгреА/рдЖрдзрд╛рд░ рдЧрд▓рдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ (рдореИрдВрдиреЗ рдЬрд▓реНрджреА рд╕реЗ рдСрдирд▓рд╛рдЗрди рдЬрд╛рдВрдЪ рдХреА рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ java. рдШрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реЛрдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ)
рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ?
рд╣рд╛рдБ, рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ! рдЬрд╛рд╡рд╛ 8 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, java.home
рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдкрд░реНрдЯреА рдЬреЗрдбреАрдХреЗ рд░реВрдЯ рдХреЗ рднреАрддрд░ рдПрдХ рдЬреЗрдЖрд░рдИ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИред рдпрд╣ рдкреНрд░рддрд┐ https://docs.oracle.com/javase/7/docs/technotes/tools/linux/jdkfiles.html рдкрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ
user=> (System/getProperty "java.home")
"/usr/lib/jvm/java-8-openjdk-amd64/jre"
рдЬрд╛рд╡рд╛ 9 рд╕реЗ рдЖрдЧреЗ, JRE рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЪрд▓реА рдЧрдИ рд╣реИ рдФрд░ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ JDK рд░реВрдЯ рдореЗрдВ рдПрдХ рд╕реНрддрд░ рддрдХ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЕрдм java.home
рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ:
user=> (System/getProperty "java.home")
"/usr/lib/jvm/java-11-openjdk-amd64"
(рджреЗрдЦреЗрдВ https://docs.oracle.com/en/java/javase/11/install/installed-directory-structure-jdk.html)
рдбреЗрдмрд┐рдпрди-рд╡реНрдпреБрддреНрдкрдиреНрди рдбрд┐рд╕реНрдЯреНрд░реЛрд╕ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░рдл, openjdk-11-source
рдкреИрдХреЗрдЬ src.zip
рд▓рд┐рдП рдПрдХ рдЯреВрдЯреА рд╣реБрдИ рд╕рд┐рдорд▓рд┐рдВрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ https://bugs.launchpad.net/ubuntu/+source/openjdk-lts /+рдмрдЧ/1791219)
рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ:
$ pwd
/usr/lib/jvm
$ ls -l java-11-openjdk-amd64/src.zip
lrwxrwxrwx 1 root root 21 Nov 20 04:13 java-11-openjdk-amd64/src.zip -> ../openjdk-11/src.zip
$ find openjdk-11 -type f
openjdk-11/lib/src.zip
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдЧ рдХреЛ рджреЛрдиреЛрдВ рдЬрдЧрд╣реЛрдВ рдкрд░ рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ src.zip
рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рдирд╣реАрдВ рддреЛ рдПрд╕рдЯреАрдбреАрдИрдЖрд░рдЖрд░ рдХреЛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреЗ рдпреЛрдЧреНрдп рдЪреЗрддрд╛рд╡рдиреА рдореБрджреНрд░рд┐рдд рдХрд░рдирд╛ рднреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдЕрдЧрд░ рдпрд╣ рдЙрдЪрд┐рдд рд▓рдЧреЗ рддреЛ рдореБрдЭреЗ рдПрдХ рдкреАрдЖрд░ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред
рдЗрд╕ рдмреАрдЪ, рдЖрдк src.zip
рдХреА рдЕрдкрдиреА рдкреНрд░рддрд┐ рдвреВрдВрдв рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреНрд▓рд╛рд╕рдкрд╛рде рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП :local/root
deps.edn рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рдпрджрд┐ рдЖрдк tools.deps https:/ /clojure.org/reference/deps_and_cli#_рдирд┐рд░реНрднрд░рддрд╛)ред
рдПрдЪрдПрдо, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЙрд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛ jdk-sources -> jdk-root
рдХреЗрд╡рд▓ рддрднреА рдХреЙрд▓ рдХреА рдЬрд╛рддреА рд╣реИ рдЬрдм рдмреВрдЯ-рдХреНрд▓рд╛рд╕-рд▓реЛрдбрд░ рдореЗрдВ рдЕрдиреНрдпрдерд╛ рдпрд╣ (.getContextClassLoader (Thread/currentThread))
,
рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╛рд╕рдкрд╛рде рдкрд░ рдЬрд╝рд┐рдк рдХреЛ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ред clj
:profiles {:repl {:resource-paths ["/usr/lib/jvm/default/lib/src.zip"]}}
рдФрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдБрдЪ рдХреА
> (System/getProperty "java.class.path") ; in repl buffer
; "/home/_/Projekte/repos/temp/test/test:/_/patrik/Projekte/repos/temp/test/src:
/usr/lib/jvm/default/lib/src.zip: <snip>
рдЕрднреА рднреА рдХреЛрдИ рдбреЙрдХреНрдЯрд░ рдирд╣реАрдВ
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рд╡рд╛ 11 рдкрд░ рддрдм рддрдХ рдЯреВрдЯреЗрдЧрд╛ рдЬрдм рддрдХ https://github.com/clojure-emacs/orchard/issues/20 рдареАрдХ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред
рдЬрд╛рд╡рд╛ 8 рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рдХреНрд▓рд╛рд╕рдкрд╛рде рдкрд░ src.zip
рдФрд░ tools.jar
рджреЛрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рддрдм рдЖрдк рдирд┐рдореНрди рдХреА рддрд░рд╣ рдХреБрдЫ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╕рд╛рдЗрдбрд░ v0.21.1 рдкрд░):
(clojure.java.io/resource "java/util/AbstractQueue.java")
;; => #object[java.net.URL 0x2e00bc76 "jar:file:/usr/lib/jvm/java-8-openjdk-amd64/src.zip!/java/util/AbstractQueue.java"]
(require '[mranderson049.orchard.v0v4v0.orchard.java.parser :as ojp])
(keys (ojp/source-info 'java.util.AbstractQueue))
;; => (:class :doc :line :column :members :file :path)
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╣рд╛рд▓ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рди рдФрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
@jeffvalk рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬреБрдбрд╝реЗ рдСрд░реНрдЪрд░реНрдб рдореБрджреНрджреЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдбреЗрдмрд┐рдпрди 10 рдкрд░, рдореБрдЭреЗ рдХреЗрд╡рд▓ openjdk-11-source
рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рдерд╛ред рдореИрдВ src.zip
рдХреЛ рд╕рд┐рдорд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдЧрдпрд╛ рдФрд░ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╣реА рдмрдирд╛рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред
Emacs 26.3 CIDER 0.24.0 nREPL 0.6.0 Java 1.8.0_242 рдХреЗ рд╕рд╛рде Ubuntu 18.04 рдкрд░ рдореИрдВрдиреЗ Leiningen рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ ( ~/.lein/profiles.clj
) рдХреЗ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рд╡рд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЬрд╝рд┐рдк рдпреБрдХреНрдд рдПрдХ dir рдЬреЛрдбрд╝рд╛:
{:user {:resource-paths ["/usr/lib/jvm/openjdk-8"]}}