whiteleaf7 / narou

Narou.rb - 小説家になろうのダウンローダ&縦書き整形&管理アプリ。Kindle(などの電子書籍端末)でなろうを読む場合に超便利です!
Other
483 stars 56 forks source link

「JavaがインストールされていないかAozoraEpub3実行時にエラーが発生しました。EPUBを作成出来ませんでした」というエラー発生 #400

Closed tomoyukikino closed 1 year ago

tomoyukikino commented 1 year ago

事象詳細

なろうダウンロードしようとした所、以下エラー発生しました。 原因は不明ですが、#369 #366 に関するような気がします。

$ narou d n2710db
ID:7 とんでもスキルで異世界放浪メシ のDL開始
第1部分 第一話 勇者召喚に巻き込まれた (1/628)
第2部分 第二話 子供にいろいろ聞いてみた (2/628)
第3部分 第三話 乗合馬車で王都を脱出  (3/628)
第4部分 第四話 冒険者に護衛を依頼 (4/628)
第5部分 第五話 冒険者と隣国へ向けて出発 (5/628)

------省略------

第624部分 第五百九十九話 スペシャルメンチカツ (624/628)
第625部分 第六百話 何事もほどほどに (625/628)
第626部分 第六百一話 酒の力は偉大だよね~(ドワーフ限定) (626/628)
第627部分 第六百二話 豚バラ肉の簡単ベーコン風 (627/628)
第628部分 第六百三話 最高かよ! (628/628)
ID:7 とんでもスキルで異世界放浪メシ の変換を開始
小説状態の調査結果を 調査ログ.txt に出力しました(エラー:0件、警告:0件、INFO:2件)
縦書用の変換が終了しました
AozoraEpub3でEPUBに変換しています.......
--------
変換開始 : /Users/tomoyuki/go/src/github.com/tomoyukikino/debug/narou/小説データ/小説家になろう/n2710db とんでもスキルで異世界放浪メシ/[江口 連] とんでもスキルで異世界放浪メシ.txt
[INFO] 濁点フォント利用 (28039) : ア゛
[INFO] 濁点フォント利用 (28040) : ア゛
[INFO] 濁点フォント利用 (28041) : ア゛
[INFO] 濁点フォント利用 (28041) : ア゛
[INFO] 濁点フォント利用 (28213) : ア゛
[INFO] 濁点フォント利用 (54383) : え゛
[INFO] 濁点フォント利用 (57099) : え゛
[INFO] 濁点フォント利用 (60228) : あ゛
[INFO] 濁点フォント利用 (60228) : あ゛
[INFO] 濁点フォント利用 (65393) : エ゛
[INFO] 濁点フォント利用 (68956) : え゛
[INFO] 濁点フォント利用 (69257) : い゛
[INFO] 濁点フォント利用 (69564) : え゛
[INFO] 濁点フォント利用 (70136) : え゛
[INFO] 濁点フォント利用 (74856) : え゛
java.io.IOException: This archives contains unclosed entries.
    at org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish(ZipArchiveOutputStream.java:343)
    at org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close(ZipArchiveOutputStream.java:550)
    at com.github.hmdev.writer.Epub3Writer.write(Epub3Writer.java:968)
    at AozoraEpub3.convertFile(AozoraEpub3.java:512)
    at AozoraEpub3.main(AozoraEpub3.java:431)
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/ImageFormatException
    at com.sun.media.jai.codecimpl.JPEGImageDecoder.decodeAsRenderedImage(JPEGImageDecoder.java:46)
    at com.sun.media.jai.codec.ImageDecoderImpl.decodeAsRenderedImage(ImageDecoderImpl.java:140)
    at com.github.hmdev.image.ImageUtils.readImage(ImageUtils.java:107)
    at com.github.hmdev.image.ImageUtils.writeImage(ImageUtils.java:152)
    at com.github.hmdev.writer.Epub3Writer.writeImage(Epub3Writer.java:1032)
    at com.github.hmdev.writer.Epub3Writer.write(Epub3Writer.java:909)
    at AozoraEpub3.convertFile(AozoraEpub3.java:512)
    at AozoraEpub3.main(AozoraEpub3.java:431)
Caused by: java.lang.ClassNotFoundException: com.sun.image.codec.jpeg.ImageFormatException
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 8 more
pid 85461 exit 1
[ERROR] JavaがインストールされていないかAozoraEpub3実行時にエラーが発生しました。EPUBを作成出来ませんでした
小説の保存フォルダを開きますか (y/n)?: n
$ narou trace
--- 2022/09/07 23:20:16 ---
/usr/local/bin/narou init

/Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/extension.rb:35:in `write': No such file or directory @ rb_sysopen - /Users/tomoyuki/Downloads/AozoraEpub3-1.1.1b14Q/template/OPS/css_custom/8fad6278aec6ceb949f847feb00982 (Errno::ENOENT)
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/extension.rb:35:in `write'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/helper.rb:379:in `erb_copy'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/command/init.rb:136:in `block in rewrite_aozoraepub3_files'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/command/init.rb:133:in `times'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/command/init.rb:133:in `rewrite_aozoraepub3_files'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/command/init.rb:106:in `init_aozoraepub3'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/command/init.rb:74:in `execute'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/commandbase.rb:125:in `execute!'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/commandbase.rb:134:in `execute!'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/commandline.rb:29:in `run'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/commandline.rb:43:in `run!'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/narou.rb:50:in `block in <top (required)>'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/backtracer.rb:16:in `capture'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/narou.rb:49:in `<top (required)>'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/bin/narou:13:in `require_relative'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/bin/narou:13:in `<top (required)>'
  from /usr/local/bin/narou:23:in `load'
  from /usr/local/bin/narou:23:in `<main>'

環境

OS: macOS Monterey (version:12.5.1) Java version: 11(18でも事象変わらず) Ruby version: 3.1.2p20

$  java -version
openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment Homebrew (build 11.0.12+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.12+0, mixed mode)
$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21]
$ narou version                                                                                                                                                                                                                                                                                            
3.8.1

kindlegen(64bit)インストール済み AozoraEpub3-1.1.1インストール・設定済み

$ narou init
AozoraEpub3の設定を行います

AozoraEpub3のあるフォルダを入力して下さい:
(未入力でスキップ、:keep で現在と同じ場所を指定)
(現在の場所:/Users/tomoyuki/Downloads/AozoraEpub3-1.1.0b46)
>/Users/tomoyuki/Downloads/hoge/AozoraEpub3-1.1.0b46

行間の調整を行います。小説の行の高さを設定して下さい(単位 em):
1em = 1文字分の高さ
行の高さ=1文字分の高さ+行間の高さ
オススメは 1.8
1.6 で若干行間狭め。1.8 だと一般的な小説程度。2.0 くらいにするとかなりスカスカ
(未入力で 1.8 を採用)
>

(次のファイルを書き換えました)
/Users/tomoyuki/Downloads/hoge/AozoraEpub3-1.1.0b46/chuki_tag.txt

(次のファイルをコピーor上書きしました)
/Users/tomoyuki/Downloads/hoge/AozoraEpub3-1.1.0b46/AozoraEpub3.ini
/Users/tomoyuki/Downloads/hoge/AozoraEpub3-1.1.0b46/template/OPS/css_custom/vertical_font.css
AozoraEpub3の設定を終了しました

試したこと

こちらの改造版AozoraEpub3narou initで設定しようとしましたが、エラー発生しました。

$ narou init                                                                               
AozoraEpub3の設定を行います

AozoraEpub3のあるフォルダを入力して下さい:
(未入力でスキップ、:keep で現在と同じ場所を指定)
(現在の場所:/Users/tomoyuki/Downloads/hoge/AozoraEpub3-1.1.0b46)
>/Users/tomoyuki/Downloads/AozoraEpub3-1.1.1b14Q

行間の調整を行います。小説の行の高さを設定して下さい(単位 em):
1em = 1文字分の高さ
行の高さ=1文字分の高さ+行間の高さ
オススメは 1.8
1.6 で若干行間狭め。1.8 だと一般的な小説程度。2.0 くらいにするとかなりスカスカ
(未入力で 1.8 を採用)
>

(次のファイルを書き換えました)
/Users/tomoyuki/Downloads/AozoraEpub3-1.1.1b14Q/chuki_tag.txt

(次のファイルをコピーor上書きしました)
/Users/tomoyuki/Downloads/AozoraEpub3-1.1.1b14Q/AozoraEpub3.ini
/Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/extension.rb:35:in `write': No such file or directory @ rb_sysopen - /Users/tomoyuki/Downloads/AozoraEpub3-1.1.1b14Q/template/OPS/css_custom/8fad6278aec6ceb949f847feb00982 (Errno::ENOENT)
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/extension.rb:35:in `write'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/helper.rb:379:in `erb_copy'

  エラーが発生したため終了しました。
  詳細なエラーログは narou trace で表示出来ます。もしくは --backtrace オプションを付けて再度実行して下さい。
$ narou trace
--- 2022/09/07 22:55:23 ---
/usr/local/bin/narou init

/Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/extension.rb:35:in `write': No such file or directory @ rb_sysopen - /Users/tomoyuki/Downloads/AozoraEpub3-1.1.1b14Q/template/OPS/css_custom/f70a14390709bf085633f34a21b41f (Errno::ENOENT)
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/extension.rb:35:in `write'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/helper.rb:379:in `erb_copy'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/command/init.rb:136:in `block in rewrite_aozoraepub3_files'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/command/init.rb:133:in `times'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/command/init.rb:133:in `rewrite_aozoraepub3_files'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/command/init.rb:106:in `init_aozoraepub3'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/command/init.rb:74:in `execute'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/commandbase.rb:125:in `execute!'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/commandbase.rb:134:in `execute!'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/commandline.rb:29:in `run'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/commandline.rb:43:in `run!'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/narou.rb:50:in `block in <top (required)>'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/lib/backtracer.rb:16:in `capture'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/narou.rb:49:in `<top (required)>'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/bin/narou:13:in `require_relative'
  from /Library/Ruby/Gems/2.6.0/gems/narou-3.8.1/bin/narou:13:in `<top (required)>'
  from /usr/local/bin/narou:23:in `load'
  from /usr/local/bin/narou:23:in `<main>'
topstone commented 1 year ago

私とは環境が異なるので正確には分かりませんが、[#371] と同じ現象の可能性はないでしょうか。

tomoyukikino commented 1 year ago

しかし@topstone さんのプルリクがrejectされてますね、、 そして2年経過してもエラーは発生し続けてるようです。

topstone commented 1 year ago

しかし@topstone さんのプルリクがrejectされてますね、、 そして2年経過してもエラーは発生し続けてるようです。

そうなんです。reject するのは原作者さんの自由なのでそれはいいのですが、問題は解決されていないので、この2年間はもしかしたら新規に narou.rb を使い始めることができた人はいないのかも知れません (error message を読んで自力で問題を解決できた方を除きます)。

[#371] を反映させたものを narouq という名称で作りましたので、 narou.rb 本家で問題が解決されるまでの間、使っていただいて構いません。ただし、Java18 以上じゃないと動かないかも知れません

whiteleaf7 commented 1 year ago

細かくは覚えてないですが、当時は望まない挙動だったけど、今だったら許容できる修正ですね reopen しますか

whiteleaf7 commented 1 year ago

@topstone https://github.com/whiteleaf7/narou/pull/371 reopen していただければマージします

topstone commented 1 year ago

@topstone #371 reopen していただければマージします

ありがとうございます。

私自身が close したものでないので、私では reopen できないようです。そちらで reopen していただくことは可能でしょうか。

whiteleaf7 commented 1 year ago

image できないみたいですね… 同様の修正をこちらで commit しておきます

tomoyukikino commented 1 year ago

@whiteleaf7 @topstone ご対応ありがとうございます!!! 最新バージョンにアップデートし再度試した所エラー発生しませんでした。 これでiBookで見れるなろう小説が増えました!!嬉しいです!!!