Temurin-build: MacOS์—์„œ GUI ์•ฑ์˜ LinkError

์— ๋งŒ๋“  2018๋…„ 09์›” 10์ผ  ยท  26์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: adoptium/temurin-build

_From @helenmasters 2017 ๋…„ 9 ์›” 5 ์ผ 13 : 7_

GUI ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•  ๋•Œ OSX์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. / Users / jenkins / workspace๊ฐ€ ํ•˜๋“œ ์ฝ”๋”ฉ ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฏ€๋กœ ์‚ฌ์šฉ์ž์˜ ์ปดํ“จํ„ฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/helenmasters/sdks/check/jdk8u144-b01/jre/lib/libfontmanager.dylib: dlopen(/Users/helenmasters/sdks/check/jdk8u144-b01/jre/lib/libfontmanager.dylib, 1): Library not loaded: /Users/jenkins/workspace/openjdk_build_x86-64_macos/openjdk/installedfreetype/lib/libfreetype.6.dylib
  Referenced from: /Users/helenmasters/sdks/check/jdk8u144-b01/jre/lib/libfontmanager.dylib
  Reason: image not found
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1845)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at sun.lwawt.macosx.LWCToolkit$1.run(LWCToolkit.java:93)
    at sun.lwawt.macosx.LWCToolkit$1.run(LWCToolkit.java:80)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.lwawt.macosx.LWCToolkit.<clinit>(LWCToolkit.java:79)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at java.awt.Toolkit$2.run(Toolkit.java:860)
    at java.awt.Toolkit$2.run(Toolkit.java:855)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:854)
    at javax.swing.UIManager.getSystemLookAndFeelClassName(UIManager.java:611)
    at javax.swing.UIManager$1.run(UIManager.java:1233)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.swing.UIManager.loadSwingProperties(UIManager.java:1228)
    at javax.swing.UIManager.initialize(UIManager.java:1457)
    at javax.swing.UIManager.maybeInitialize(UIManager.java:1426)
    at javax.swing.UIManager.getUI(UIManager.java:1006)
    at javax.swing.JPanel.updateUI(JPanel.java:126)
    at javax.swing.JPanel.<init>(JPanel.java:86)
    at javax.swing.JPanel.<init>(JPanel.java:109)
    at javax.swing.JPanel.<init>(JPanel.java:117)
    at citmsxa.<init>(citmsxa.java:11)
    at citmsxa.main(citmsxa.java:376)

๋‹ค์Œ์€ ๊ฒฝ๋กœ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” otool ๋ช…๋ น์˜ ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค.

helens-mbp:check helenmasters$ otool -L /Users/helenmasters/sdks/check/jdk8u144-b01/jre/lib/libfontmanager.dylib
/Users/helenmasters/sdks/check/jdk8u144-b01/jre/lib/libfontmanager.dylib:
    @rpath/libfontmanager.dylib (compatibility version 1.0.0, current version 1.0.0)
    /Users/jenkins/workspace/openjdk_build_x86-64_macos/openjdk/installedfreetype/lib/libfreetype.6.dylib (compatibility version 12.0.0, current version 12.0.0)
    @rpath/libawt.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    @rpath/libjava.dylib (compatibility version 1.0.0, current version 1.0.0)
    @rpath/libjvm.dylib (compatibility version 1.0.0, current version 1.0.0)

_ ์›๋ž˜ ๋ฌธ์ œ์—์„œ ๋ณต์‚ฌ : AdoptOpenJDK / openjdk-jdk8u-backup # 4_

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

AdoptOpenJDK jdk8u172-b11์„ ์‚ฌ์šฉํ•˜์—ฌ MacOS 10.13.6์—์„œ ๊ด€๋ จ ์˜ค๋ฅ˜๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Œ
์‹ฌ๋ณผ๋ฆญ ๋งํฌ ์„ค์ •์€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
ln -s libfreetype.dylib.6 libfreetype.6.dylib

Stacktrace
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Library/Java/JavaVirtualMachines/jdk8u172-b11/jre/lib/libfontmanager.dylib: dlopen(/Library/Java/JavaVirtualMachines/jdk8u172-b11/jre/lib/libfontmanager.dylib, 1): Library not loaded: @rpath/libfreetype.6.dylib Referenced from: /Library/Java/JavaVirtualMachines/jdk8u172-b11/jre/lib/libfontmanager.dylib Reason: image not found at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1845) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1122) at sun.lwawt.macosx.LWCToolkit$1.run(LWCToolkit.java:93)

๋ชจ๋“  26 ๋Œ“๊ธ€

_From @Diagoras 2018 ๋…„ 9 ์›” 6 ์ผ 16 : 53_

FWIW, ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ AdoptOpenJDK๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@johnoliver LMK๋ฅผ ๋ฒ„๊ทธ๋กœ ๋นŒ๋“œ

_From @johnoliver 2018 ๋…„ 9 ์›” 7 ์ผ 12 : 15_

์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. https://github.com/AdoptOpenJDK/openjdk8-binaries/releases ์—์„œ ์ตœ์‹  ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

_From @Diagoras 2018 ๋…„ 9 ์›” 10 ์ผ 19 : 36_

@johnoliver ์•ˆ๋…•ํ•˜์„ธ์š”, MacOS ์šฉ Hotspot jdk8u-2018-07-26-16-12 ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜์ง€๋งŒ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ ํŠน๋ณ„ํžˆ:

Fatal(java.lang.UnsatisfiedLinkError: /Users/[username]/Downloads/jdk8u181-b13/jre/lib/libfontmanager.dylib: dlopen(/Users/[username]/Downloads/jdk8u181-b13/jre/lib/libfontmanager.dylib, 1): Library not loaded: @rpath/libfreetype.6.dylib
  Referenced from: /Users/[username]/Downloads/jdk8u181-b13/jre/lib/libfontmanager.dylib
  Reason: image not found
)

์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ค์‹œ ์—ด๋ ธ์ง€๋งŒ ๋นŒ๋“œ ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

AdoptOpenJDK jdk8u172-b11์„ ์‚ฌ์šฉํ•˜์—ฌ MacOS 10.13.6์—์„œ ๊ด€๋ จ ์˜ค๋ฅ˜๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์Œ
์‹ฌ๋ณผ๋ฆญ ๋งํฌ ์„ค์ •์€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
ln -s libfreetype.dylib.6 libfreetype.6.dylib

Stacktrace
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Library/Java/JavaVirtualMachines/jdk8u172-b11/jre/lib/libfontmanager.dylib: dlopen(/Library/Java/JavaVirtualMachines/jdk8u172-b11/jre/lib/libfontmanager.dylib, 1): Library not loaded: @rpath/libfreetype.6.dylib Referenced from: /Library/Java/JavaVirtualMachines/jdk8u172-b11/jre/lib/libfontmanager.dylib Reason: image not found at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1845) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1122) at sun.lwawt.macosx.LWCToolkit$1.run(LWCToolkit.java:93)

jdk8u181-b13 ๋นŒ๋“œ์— ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

java.lang.UnsatisfiedLinkError: /Library/Java/JavaVirtualMachines/jdk8u181-b13/Contents/Home/jre/lib/libfontmanager.dylib: dlopen(/Library/Java/JavaVirtualMachines/jdk8u181-b13/Contents/Home/jre/lib/libfontmanager.dylib, 1): Library not loaded: @rpath/libfreetype.6.dylib
  Referenced from: /Library/Java/JavaVirtualMachines/jdk8u181-b13/Contents/Home/jre/lib/libfontmanager.dylib
  Reason: image not found

์‹ค์ œ lib ์ด๋ฆ„์ด rpath์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

$ ls /Library/Java/JavaVirtualMachines/jdk8u181-b13/Contents/Home/jre/lib/libfreetype*
/Library/Java/JavaVirtualMachines/jdk8u181-b13/Contents/Home/jre/lib/libfreetype.dylib.6

Apache POI์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ ํ–ˆ์œผ๋ฏ€๋กœ open jdk 8์„ ์ฑ„ํƒํ•˜๋„๋ก ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์‹œ๋„ ํ•  ์ˆ˜์žˆ๋Š” ์งง๊ณ  / ๊ฐ„๋‹จํ•œ ์žฌํ˜„์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ค์Œ์€ ์˜ˆ์™ธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๊ธฐ๋ณธ ์˜ˆ์ž…๋‹ˆ๋‹ค.

poi-example.zip

์ด ์˜ˆ์ œ๋Š” Oracle jdk8์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์‹คํ–‰์‹œ ์Šคํƒ ์ถ”์  :

runningPoiResultsInLinkError (com.example.poi.link.PoiLinkTest) ๊ฒฝ๊ณผ ์‹œ๊ฐ„ : 0.958 ์ดˆ <<< ์˜ค๋ฅ˜!
java.lang.UnsatisfiedLinkError : /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/jre/lib/libfontmanager.dylib : dlopen (/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/ jre / lib / libfontmanager.dylib, 1) : ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€๋กœ๋“œ๋˜์ง€ ์•Š์Œ : @ rpath / libfreetype.6.dylib
์ฐธ์กฐ ์œ„์น˜ : /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/jre/lib/libfontmanager.dylib
์ด์œ  : ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
java.lang.ClassLoader $ NativeLibrary.load (Native Method)์—์„œ
java.lang.ClassLoader.loadLibrary0 (ClassLoader.java:1941)์—์„œ
java.lang.ClassLoader.loadLibrary (ClassLoader.java:1845)์—์„œ
java.lang.Runtime.loadLibrary0 (Runtime.java:870)์—์„œ
java.lang.System.loadLibrary (System.java:1122)์—์„œ
sun.font.FontManagerNativeLibrary $ 1.run (FontManagerNativeLibrary.java:61)์—์„œ
java.security.AccessController.doPrivileged (Native Method)์—์„œ
sun.font.FontManagerNativeLibrary์—์„œ.(FontManagerNativeLibrary.java:32)
sun.font.SunFontManager $ 1.run (SunFontManager.java:339)
java.security.AccessController.doPrivileged (Native Method)์—์„œ
sun.font.SunFontManager์—์„œ.(SunFontManager.java:335)
java.lang.Class.forName0 (Native Method)์—์„œ
java.lang.Class.forName (Class.java:348)์—์„œ
sun.font.FontManagerFactory $ 1.run (FontManagerFactory.java:82)
java.security.AccessController.doPrivileged (Native Method)์—์„œ
sun.font.FontManagerFactory.getInstance (FontManagerFactory.java:74)
java.awt.Font.getFont2D (Font.java:491)์—์„œ
java.awt.Font.canDisplayUpTo (Font.java:2060)์—์„œ
java.awt.font.TextLayout.singleFont (TextLayout.java:470)์—์„œ
java.awt.font.TextLayout.(TextLayout.java:531)
org.apache.poi.ss.util.SheetUtil.getColumnWidth (SheetUtil.java:208)
org.apache.poi.xssf.streaming.SXSSFSheet.autoSizeColumn (SXSSFSheet.java:1166)
org.apache.poi.xssf.streaming.SXSSFSheet.autoSizeColumn (SXSSFSheet.java:1148)
com.example.poi.link.PoiLinkTest.runningPoiResultsInLinkError (PoiLinkTest.java:14)

์—ฌ๊ธฐ์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Swing์€ u192-b12 ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (์ฐธ๊ณ  : OracleJDK์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•  ๋•Œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค).

Exception in thread "main" java.lang.UnsatisfiedLinkError: /Library/Java/JavaVirtualMachines/jdk8u192-b12/Contents/Home/jre/lib/libfontmanager.dylib: dlopen(/Library/Java/JavaVirtualMachines/jdk8u192-b12/Contents/Home/jre/lib/libfontmanager.dylib, 1): Library not loaded: @rpath/libfreetype.6.dylib
  Referenced from: /Library/Java/JavaVirtualMachines/jdk8u192-b12/Contents/Home/jre/lib/libfontmanager.dylib
  Reason: image not found
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1845)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at sun.lwawt.macosx.LWCToolkit$1.run(LWCToolkit.java:93)
    at sun.lwawt.macosx.LWCToolkit$1.run(LWCToolkit.java:80)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.lwawt.macosx.LWCToolkit.<clinit>(LWCToolkit.java:79)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at java.awt.Toolkit$2.run(Toolkit.java:860)
    at java.awt.Toolkit$2.run(Toolkit.java:855)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:854)
    at java.awt.Window.getToolkit(Window.java:1358)
    at java.awt.Window.init(Window.java:506)
    at java.awt.Window.<init>(Window.java:436)
    at java.awt.Frame.<init>(Frame.java:446)
    at java.awt.Frame.<init>(Frame.java:404)
    at javax.swing.JFrame.<init>(JFrame.java:213)

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ (Netbeans๋กœ ์‹คํ–‰)๋กœ๋„ :

public class JavaApplication4 {
    /**
     * <strong i="6">@param</strong> args the command line arguments
     */
    public static void main(String[] args) {
        System.out.println(" Hello !");

        JFrame frame = new JFrame("Testando");
        frame.setVisible(true);
        frame.setSize(300, 300);
    }
}
run:
 Hello !
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Library/Java/JavaVirtualMachines/jdk8u192-b12/Contents/Home/jre/lib/libfontmanager.dylib: dlopen(/Library/Java/JavaVirtualMachines/jdk8u192-b12/Contents/Home/jre/lib/libfontmanager.dylib, 1): Library not loaded: @rpath/libfreetype.6.dylib
  Referenced from: /Library/Java/JavaVirtualMachines/jdk8u192-b12/Contents/Home/jre/lib/libfontmanager.dylib
  Reason: image not found
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1845)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at sun.lwawt.macosx.LWCToolkit$1.run(LWCToolkit.java:93)
    at sun.lwawt.macosx.LWCToolkit$1.run(LWCToolkit.java:80)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.lwawt.macosx.LWCToolkit.<clinit>(LWCToolkit.java:79)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at java.awt.Toolkit$2.run(Toolkit.java:860)
    at java.awt.Toolkit$2.run(Toolkit.java:855)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:854)
    at java.awt.Window.getToolkit(Window.java:1358)
    at java.awt.Window.init(Window.java:506)
    at java.awt.Window.<init>(Window.java:537)
    at java.awt.Frame.<init>(Frame.java:420)
    at javax.swing.JFrame.<init>(JFrame.java:233)
    at javaapplication4.JavaApplication4.main(JavaApplication4.java:23)
/Users/gabriela/Library/Caches/NetBeans/8.2/executor-snippets/run.xml:53: Java returned: 1
BUILD FAILED (total time: 3 seconds)

์ด ๋•Œ๋ฌธ์— AdoptOpenJDK๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ symlink๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. libfreetype.6.dylib-> libfreetype.dylib.6

@slandelle ๊ทผ๋ณธ ์›์ธ์€ ํŒŒ์ผ ์ด๋ฆ„์— ์ž˜๋ชป๋œ ์ˆœ์„œ๋กœ "6"๊ณผ "dylib"๊ฐ€์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€ ๊ฝค ์žฌ๋ฐŒ๊ณ  ์‰ฝ๊ฒŒ ๊ณ ์น  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

Mac OS X ๋ฒ„์ „ ๊ฐ„์—๋Š” ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฃผ์— ํ–ฅํ›„ ๋นŒ๋“œ๋ฅผ ์œ„ํ•ด์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ symlink๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. libfreetype.6.dylib-> libfreetype.dylib.6

์—ฌ๊ธฐ์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ณง ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๊ฐ์‚ฌ!

jdk ๊ฒฝ๋กœ lib "/ Contents / Home / jre / lib"์— ๋Œ€ํ•œ 1 cd

2 ๋‹ค์Œ์— "sudo ln -s libfreetype.dylib.6 libfreetype.6.dylib"

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

AdoptOpenJDK 8์—์„œ Groovy์˜ groovysh GUI ๋„๊ตฌ๊ฐ€ ์•„๋‹˜)๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ ํ•˜๋ฉด ๋‹ค์Œ์ด ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

$ groovysh
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:110)
    at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:128)
Caused by: java.lang.UnsatisfiedLinkError: /Library/Java/JavaVirtualMachines/openjdk8/Contents/Home/jre/lib/libfontmanager.dylib: dlopen(/Library/Java/JavaVirtualMachines/openjdk8/Contents/Home/jre/lib/libfontmanager.dylib, 1): Library not loaded: @rpath/libfreetype.6.dylib
  Referenced from: /Library/Java/JavaVirtualMachines/openjdk8/Contents/Home/jre/lib/libfontmanager.dylib
  Reason: image not found
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1845)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at sun.lwawt.macosx.LWCToolkit$1.run(LWCToolkit.java:93)
    at sun.lwawt.macosx.LWCToolkit$1.run(LWCToolkit.java:80)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.lwawt.macosx.LWCToolkit.<clinit>(LWCToolkit.java:79)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at java.awt.Toolkit$2.run(Toolkit.java:860)
    at java.awt.Toolkit$2.run(Toolkit.java:855)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:854)
    at java.awt.Desktop.isDesktopSupported(Desktop.java:169)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:104)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:326)
    at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1859)
    at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:3797)
    at org.codehaus.groovy.runtime.callsite.ClassMetaClassGetPropertySite.getProperty(ClassMetaClassGetPropertySite.java:50)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:298)
    at org.codehaus.groovy.tools.shell.commands.DocCommand.<clinit>(DocCommand.groovy:53)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:237)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:249)
    at org.codehaus.groovy.tools.shell.util.DefaultCommandsRegistrar.register(DefaultCommandsRegistrar.groovy:84)
    at org.codehaus.groovy.tools.shell.util.DefaultCommandsRegistrar$register.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:119)
    at org.codehaus.groovy.tools.shell.Groovysh$_createDefaultRegistrar_closure3.doCall(Groovysh.groovy:121)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:104)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:326)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:41)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
    at org.codehaus.groovy.tools.shell.Groovysh.<init>(Groovysh.groovy:109)
    at org.codehaus.groovy.tools.shell.Groovysh.<init>(Groovysh.groovy:140)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:237)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:257)
    at org.codehaus.groovy.tools.shell.Main.<init>(Main.groovy:65)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:237)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:257)
    at org.codehaus.groovy.tools.shell.Main.main(Main.groovy:158)
    ... 6 more

@Cynthiahaha๊ฐ€ ์ œ์•ˆํ•œ๋Œ€๋กœ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค.

์ด groovysh ๋ฌธ์ œ๋Š” AdoptOpenJDK 11 ๋นŒ๋“œ (HotSpot ๋˜๋Š” OpenJ9)๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทผ๋ณธ ์›์ธ์€ ํŒŒ์ผ ์ด๋ฆ„์— "6"๊ณผ "dylib"์˜ ์ˆœ์„œ๊ฐ€ ์ž˜๋ชป๋˜์–ด์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€ ๊ฝค ์žฌ๋ฐŒ๊ณ  ์‰ฝ๊ฒŒ ๊ณ ์น  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

Mac OS X ๋ฒ„์ „ ๊ฐ„์—๋Š” ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋น„ macOS UNIX ๊ณ„์—ด ์šด์˜ ์ฒด์ œ์—์„œ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ ‘๋ฏธ์‚ฌ๋Š” "so"์ด๋ฉฐ ๋ฒ„์ „ ๋ฒˆํ˜ธ ์•ž์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค (์˜ˆ : "libfreetype.so.6"). macOS์—์„œ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ ‘๋ฏธ์‚ฌ๋Š” "dylib"์ด๋ฉฐ ์„ ํƒ์ ์ธ ์ฃผ ๋ฒ„์ „ ๋ฒˆํ˜ธ (์˜ˆ : "libfreetype.6.dylib") ๋’ค์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  macOS ๋ฒ„์ „์€์ด ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋นŒ๋“œ ์‹œ์Šคํ…œ ์–ด๋”˜๊ฐ€์— macOS์—์„œ ๋นŒ๋“œ ํ•  ๋•Œ ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ž˜๋ชป ์ ์šฉํ•œ ํ›„ ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ๋‚˜ํƒ€๋‚˜์•ผํ•œ๋‹ค๋Š” ๊ฐ€์ •์ด์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

jdk ๊ฒฝ๋กœ lib "/ Contents / Home / jre / lib"์— ๋Œ€ํ•œ 1 cd

2 ๋‹ค์Œ์— "sudo ln -s libfreetype.dylib.6 libfreetype.6.dylib"

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด๋Š” GUI ์•ฑ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•œ PDF ์ƒ์„ฑ์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์ณค์Šต๋‹ˆ๋‹ค.

@helenmasters @justinnichols @ryandesign @breun @Cynthiahaha @gabibau et all can you please try

https://ci.adoptopenjdk.net/job/build-scripts/job/jobs/job/jdk8u/job/jdk8u-mac-x64-hotspot/148/ ์—์„œ JDK / JRE๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@karianna ๊ทธ๋“ค์€ groovysh ๋ฅผ) ์‹คํ–‰ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด ๋นŒ๋“œ์—๋Š” libfreetype.6.dylib ์™€ libfreetype.dylib.6 ๊ฐ€ ๋ชจ๋‘ ์žˆ์œผ๋ฉฐ ๋™์ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

$ ls -l libfreetype.*
-rwxr-xr-x@ 1 breun  staff  873072 15 jan 18:38 libfreetype.6.dylib
-rwxr-xr-x@ 1 breun  staff  873088 15 jan 18:38 libfreetype.dylib.6

์ด๊ฒƒ์ด ํ•„์š”ํ•œ / ์˜๋„์ ์ธ๊ฐ€?

@karianna ๊ทธ๋“ค์€ groovysh ๋ฅผ) ์‹คํ–‰ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด ๋นŒ๋“œ์—๋Š” libfreetype.6.dylib ์™€ libfreetype.dylib.6 ๊ฐ€ ๋ชจ๋‘ ์žˆ์œผ๋ฉฐ ๋™์ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

$ ls -l libfreetype.*
-rwxr-xr-x@ 1 breun  staff  873072 15 jan 18:38 libfreetype.6.dylib
-rwxr-xr-x@ 1 breun  staff  873088 15 jan 18:38 libfreetype.dylib.6

์ด๊ฒƒ์ด ํ•„์š”ํ•œ / ์˜๋„์ ์ธ๊ฐ€?

@johnoliver ๋‹ค๋ฅธ ๋ฌธ์ œ์™€ ๊ฐ™์€ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด๊ฒŒ ๋๋‚ฌ๋‹ค๊ณ  ์ƒ๊ฐํ•ด

๋‹ซํ˜€๋„ ๋ ๊นŒ์š” @johnoliver

๋ˆ„๊ตฐ๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰