トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Diary/2019-10-6

Synthesijerをsbtで

Synthesijerをsbtに移行.
ついでにsbt-assemblyを使って生成するJarにスクリプトを仕込んでみた.

@ 2>/dev/null # 2>nul & echo off & goto BOF:
LANG=en_US.UTF-8 LANG=en_US.UTF-8 exec java -jar $JAVA_OPTS "$0" "$@"
exit

:BOF
java -jar %JAVA_OPTS% "%~dpnx0" %*
exit /B %errorlevel%

改行コードを混在させつつ,シェルスクリプトとバッチファイルを共存させる仕組み,面白い.
ちなみに,オリジナルは,↓で,
https://github.com/sbt/sbt-assembly/blob/master/src/main/scala/sbtassembly/AssemblyPlugin.scala
LANGとLC_ALLの指定をしたかったので,上記で上書きした.
snap化したときには,これだとjavaがみつからないので,

LANG=en_US.UTF-8 LANG=en_US.UTF-8 exec $SNAP/usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar $JAVA_OPTS "$0" "$@"

とか.

結局

上記でも,snapでインストールした場合に,

miyo@tama:% synthesijer Test001.java
Test001.java:1: error: cannot access unnamed package
import synthesijer.rt.*;
^
  error accessing directory /home/miyo/work/synthesijer/synthesijer/sample/testjava.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: ????????????
1 error

同じディレクトリに日本語ファイルがある場合に,例外が発生することにかわりはなかった.

結局(2)

EnvironmentでLANGとLC_ALLを指定したら,
同じディレクトリに日本語ファイルがある場合にも,
うまく処理できるようになった.