(2021-01-02) 2021年版書きました: JRubyでLibreOffice Calcのfodsファイルを読み書きするサンプル 2021
以前 JavaScript(Rhino/jrunscript)で書いたものを今さらながら Nashorn 向けに書きなおそうとして調べたところ、非推奨になっていました。
2018-06-07 JavaでJavaScriptを実行する「Nashorn」が非推奨に、ECMAScriptの速い進化に追いつけないと。代替案はGraalVM - Publickey
去年のニュースですね。全然気づいてませんでした。GraalVM を使えとあり、それも面白そうではありますが時期尚早な感じもします。ちょっと考えて JRuby で書き直してみることにしました。
(※ 2019-12-02 に書いた記事のクロスポストです)
sonota88/libreoffice-jruby-sample (tag: 20191202)
https://github.com/sonota88/libreoffice-jruby-sample/tree/20191202
Ubuntu で動かす前提のサンプルになっていて、 libreoffice-java-common
をインストールしておく必要があります。ライブラリまわりについては一つ前の記事なども参考にしてください。Windows などでもライブラリのパスの修正だけで動くんじゃないかと思います。
なんかデッドロックが発生してプログラムが終了しなかったのでサンプルスクリプトでは明示的に exit
しています。jstack を使ってデッドロックしているなーというとこまで調べたあたりで気力が尽きました。また気が向いたら調べるかも……。
今回はじめて JRuby を使ってみましたが、 zip をダウンロードして展開して bin/
にパスを通すだけで使えて、いいですね。分かりやすい。
JRuby から Java のライブラリなどを使う場合、下記は必読でした。まずこれを読みましょう。
CallingJavaFromJRuby · jruby/jruby Wiki
次のようにシートをダンプしてくれる dump.rb
もおまけで追加しました。値が入っている最大の行・列の取り方が分からなかったため、いったん100行・100列まで見るようにしました。サンプルということで許してください……。
$ jruby dump.rb foo.fods {シート名}
["a1", "b1"]
["a2", "b2"]
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント