fusesource / jansi

Jansi is a small java library that allows you to use ANSI escape sequences to format your console output which works even on windows.
http://fusesource.github.io/jansi/
Apache License 2.0
1.1k stars 139 forks source link

Unable to load jansi if the temp directory has UTF-8 chars #245

Closed centeiol closed 9 months ago

centeiol commented 1 year ago

Hello,

My user ha changed and now I can't lunch jansi.

But with another user no problem, is for path with LuísCENTEIO ? Whow can I overcome this issue?

Below the two output from two users in same computer : ( hotline and LuísCENTEIO ) hotline the good

C:\Users\LuísCENTEIO>java -jar C:\Apps\sqlcl\lib\jansi.jar Jansi 2.4.0

library.jansi.path= library.jansi.version= Failed to load native library:jansi-2.4.0-a29997176d7b74cc-jansi.dll. osinfo: Windows/x86_64 java.lang.UnsatisfiedLinkError: C:\Users\LuísCENTEIO\AppData\Local\Temp\jansi-2.4.0-a29997176d7b74cc-jansi.dll: Can't find dependent libraries Failed to load native library:jansi-2.4.0-da01663cb1674f6b-jansi.dll. osinfo: Windows/x86_64 java.lang.UnsatisfiedLinkError: C:\Users\LuísCENTEIO\AppData\Local\Temp\jansi-2.4.0-da01663cb1674f6b-jansi.dll: Can't find dependent libraries java.lang.RuntimeException: Unable to load jansi native library. You may want set the jansi.graceful system property to true to be able to use Jansi on your platform at org.fusesource.jansi.internal.JansiLoader.initialize(JansiLoader.java:65) at org.fusesource.jansi.AnsiMain.main(AnsiMain.java:70) Caused by: java.lang.Exception: No native library found for os.name=Windows, os.arch=x86_64, paths=[/org/fusesource/jansi/internal/native/Windows/x86_64;C:\Program Files\Java\jdk-17.0.5\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Common Files\Oracle\Java\javapath;C:\app\oracle\product\21.0.0\product\21.0.0\client_1\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Microsoft VS Code\bin;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\ProgramData\chocolatey\bin;C:\tools\lxrunoffline;C:\Program Files\dotnet\;c:\utils;C:\Program Files\Citrix\Citrix Files\;C:\Program Files\Java\jdk1.8.0_211\bin;C:\Users\LuísCENTEIO\AppData\Local\Microsoft\WindowsApps;.] at org.fusesource.jansi.internal.JansiLoader.loadJansiNativeLibrary(JansiLoader.java:334) at org.fusesource.jansi.internal.JansiLoader.initialize(JansiLoader.java:62) ... 1 more

os.name= Windows 10, os.version= 10.0, os.arch= amd64 file.encoding= Cp1252 java.version= 17.0.5, java.vendor= Oracle Corporation, java.home= C:\Program Files\Java\jdk-17.0.5

jansi.graceful= jansi.mode= jansi.out.mode= jansi.err.mode= jansi.colors= jansi.out.colors= jansi.err.colors= jansi.passthrough= false jansi.strip= false jansi.force= false jansi.noreset= false org.fusesource.jansi.Ansi.disable= false

IS_WINDOWS: true IS_CONEMU: false IS_CYGWIN: false IS_MSYSTEM: false

Failed to load native library:jansi-2.4.0-d8d3e45b9f756f14-jansi.dll. osinfo: Windows/x86_64 java.lang.UnsatisfiedLinkError: C:\Users\LuísCENTEIO\AppData\Local\Temp\jansi-2.4.0-d8d3e45b9f756f14-jansi.dll: Can't find dependent libraries isatty(STDOUT_FILENO): 0, System.out is NOT a terminal isatty(STDERR_FILENO): 0, System.err is NOT a terminal

Resulting Jansi modes for stout/stderr streams:

test on System.out: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT bright: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT bold: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT faint: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT bold+faint: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT 256 colors:

     truecolor: /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\

test on System.err: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT bright: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT bold: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT faint: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT bold+faint: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT 256 colors:

     truecolor: /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\

                  ┌──┐┌─────┐ ┌─────┐ ┌──────┬──┐
                  │██├┘█████└┬┘█████└┬┘██████│▐▌│
             ┌──┐ │██│██▄▄▄██│██┌─┐██│██▄▄▄▄ │▄▄│
             │▒▒└─┘▒█│▒█┌─┐▒█│▒█│ │▒█│ ▀▀▀▀▒█│▒█│
             └┐▓▓▓▓▓┌┤▓▓│ │▓▓│▓▓│ │▓▓│▀▓▓▓▓▓▀│▓▓│
              └─────┘└──┘ └──┴──┘ └──┴───────┴──┘

c:>java -jar C:\Apps\sqlcl\lib\jansi.jar Jansi 2.4.0

library.jansi.path= library.jansi.version= Jansi native library loaded from C:\Users\hotline\AppData\Local\Temp\jansi-2.4.0-57cb32c49e8d6081-jansi.dll which was auto-extracted from jar:file:/C:/Apps/sqlcl/lib/jansi.jar!/org/fusesource/jansi/internal/native/Windows/x86_64/jansi.dll

os.name= Windows 10, os.version= 10.0, os.arch= amd64 file.encoding= Cp1252 java.version= 17.0.5, java.vendor= Oracle Corporation, java.home= C:\Program Files\Java\jdk-17.0.5

jansi.graceful= jansi.mode= jansi.out.mode= jansi.err.mode= jansi.colors= jansi.out.colors= jansi.err.colors= jansi.passthrough= false jansi.strip= false jansi.force= false jansi.noreset= false org.fusesource.jansi.Ansi.disable= false

IS_WINDOWS: true IS_CONEMU: false IS_CYGWIN: false IS_MSYSTEM: false

isatty(STDOUT_FILENO): 1, System.out is a terminal isatty(STDERR_FILENO): 1, System.err is a terminal

Resulting Jansi modes for stout/stderr streams:

test on System.out: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT bright: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT bold: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT faint: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT bold+faint: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT 256 colors:

     truecolor: /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\

test on System.err: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT bright: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT bold: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT faint: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT bold+faint: BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE DEFAULT 256 colors:

     truecolor: /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
                /\/\/\/\/\/\/\/\

                  ┌──┐┌─────┐ ┌─────┐ ┌──────┬──┐
                  │██├┘█████└┬┘█████└┬┘██████│▐▌│
             ┌──┐ │██│██▄▄▄██│██┌─┐██│██▄▄▄▄ │▄▄│
             │▒▒└─┘▒█│▒█┌─┐▒█│▒█│ │▒█│ ▀▀▀▀▒█│▒█│
             └┐▓▓▓▓▓┌┤▓▓│ │▓▓│▓▓│ │▓▓│▀▓▓▓▓▓▀│▓▓│
              └─────┘└──┘ └──┴──┘ └──┴───────┴──┘
centeiol commented 1 year ago

Done

set tmp=c:\tmp set temp=c:\tmp

and OK

Sorry

michael-o commented 1 year ago

This cannot be solved, read my explanation here: https://issues.apache.org/jira/browse/MNG-7245