ふたもりのブログ(仮)

個人的な感想とかメモ書きのまとめ。ネタバレもあるのでご注意を。

SlayTheSpire動かなかったので調べてたらフォルダの名前が面白いことになってたメモ

自分用メモ。原因もなんだか面白かったので。

 

SlayTheSpireをやろうとするも起動せず。エラーが出るとかでもなく全く立ち上がらない感じ。

色々調べて再インストールとかJavaのインストールとかも試したけど解決せず。

 

参考このへんとか:

wikiwiki.jp

 

以下解決までの流れ。

 

一度起動に失敗すると「SlayTheSpireTroubleshoot.bat」が生成される模様っぽい。
(おそらく)

f:id:futamori_tf:20220211115442p:plain


それでこれを起動したままSlayTheSpireを起動するとログが取れた。以下ログのエラー部分。

================================
LwjglApplication: Couldn't initialize audio, disabling audio
java.lang.UnsatisfiedLinkError: C:\Windows\TEMP\libgdx<ユーザ名>\dc0f0009\lwjgl64.dll: Can't find dependent libraries
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
...
================================


C:\Windows\TEMPを見に行く。

f:id:futamori_tf:20220211115958p:plain

???????????????????????????????

なんか¥入りのヤバそうな名前のフォルダが出来てる。

ちなみにWindowsフォルダの中にも通常のtempフォルダはある。

問題のlwjgl64.dllはこっちの¥入りの方にあった。

なので正しいWindowsフォルダ配下のtempにコピーしたら無事に動いた。

めでたしめでたし。

そもそもなんで¥入りのフォルダ作れてるんだよって話。

フォルダ名コピーして文字コード確認した所

f:id:futamori_tf:20220211120559p:plain

この¥の文字コードU+00A5でUnicode文字だった。

前後は普通にSJISなのでそこに混じって作られてしまったらしい。

というかこうすれば¥入りフォルダ作れるんだな…。

何かのプログラムがtemp参照する時にこのフォルダをうっかり作ってしまったのだろうと推測。

他のプログラムもTempファイルの場所勘違いしたら困るし、削除しておくのが吉か。

 

この原因、SlayTheSpire固有の話じゃないな…。