Skip to content

Support Windows on ARM #238

Closed
gnodet/jansi
#1
@rubin55

Description

@rubin55

When jansi is invoked on Windows (11) on ARM64, I get an exception, probably due to the os.arch and os.name combination not being anticipated:

jshell> System.getProperty("os.name");
$2 ==> "Windows 11"
jshell> System.getProperty("os.arch");
$3 ==> "aarch64"

Could you add support for Windows on ARM in Jansi?

PS: the exception I got (through sbt 1.6.2, which uses Jansi 2.1.0):

sbt
May 09, 2022 10:13:54 PM org.jline.utils.Log logr
WARNING: Unable to create a system terminal, creating a dumb terminal (enable debug logging for more information)
java.lang.NoClassDefFoundError: Could not initialize class org.fusesource.jansi.internal.Kernel32
        at sbt.internal.util.WindowsSupport$.getConsoleMode(WindowsInputStream.scala:20)
        at sbt.internal.util.JLine3$.setEnableProcessInput(JLine3.scala:234)
        at sbt.internal.util.JLine3$.enterRawMode(JLine3.scala:244)
        at sbt.internal.util.Terminal$ConsoleTerminal.enterRawMode(Terminal.scala:861)
        at sbt.internal.util.Terminal$ConsoleTerminal.<init>(Terminal.scala:820)
        at sbt.internal.util.Terminal$.newConsoleTerminal(Terminal.scala:758)
        at sbt.internal.util.Terminal$.withStreams(Terminal.scala:346)
        at sbt.xMain$.withStreams$1(Main.scala:87)
        at sbt.xMain$.run(Main.scala:121)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at sbt.internal.XMainConfiguration.run(XMainConfiguration.java:57)
        at sbt.xMain.run(Main.scala:46)
        at xsbt.boot.Launch$.$anonfun$run$1(Launch.scala:149)
        at xsbt.boot.Launch$.withContextLoader(Launch.scala:176)
        at xsbt.boot.Launch$.run(Launch.scala:149)
        at xsbt.boot.Launch$.$anonfun$apply$1(Launch.scala:44)
        at xsbt.boot.Launch$.launch(Launch.scala:159)
        at xsbt.boot.Launch$.apply(Launch.scala:44)
        at xsbt.boot.Launch$.apply(Launch.scala:21)
        at xsbt.boot.Boot$.runImpl(Boot.scala:78)
        at xsbt.boot.Boot$.run(Boot.scala:73)
        at xsbt.boot.Boot$.main(Boot.scala:21)
        at xsbt.boot.Boot.main(Boot.scala)
[error] [launcher] error during sbt launcher: java.lang.NoClassDefFoundError: Could not initialize class org.fusesource.jansi.internal.Kernel32

Note: I'm not 100% sure if the os.name/os.arch combination is at play here, or if sbt itself is doing something funny on this platform. A relevant issue on the sbt project is: sbt/sbt#5495

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions