64 ビットの OpenSUSE 12.1 を実行しています。今日、公式 Web サイトから最新の Scala 2.9.2 をダウンロードしました。 :
[init] error: error while loading <root>, error in opening zip file
Failed to initialize compiler: object scala not found.
** Note that as of 2.8 scala does not assume use of the java classpath.
** For the old behavior pass -usejavacp to scala, or if using a Settings
** object programatically, settings.usejavacp.value = true.
scala -usejavacp を実行しようとしましたが、役に立ちません。私は他の多くのディストリビューションで Scala を頻繁に使用してきましたが、これまでこのエラーが発生したことはありません。
私の OpenSUSE インストールには、OpenJDK 6 がインストールされています。
あなたの意見を提案してください、ありがとう!
問題を解決するために、次の試みを行いました。
- Oracle JDK 1.7 をインストールして scala を実行し、scala REPL が hotspot JVM 1.7 で実行されていることを報告し、同じエラーが発生することを確認しました。
- sbt をインストールし、sbt から "console" を実行すると、同じエラーが発生します。
- 通常のユーザーとして sudo scala と scala の間の出力を strace および diff します。上記のエラー メッセージ以外に違いはありません。
- su および通常のユーザーとして scala -Ylog-classpath を実行し、上記と同じように出力を比較します。
- AppArmor を無効にして再試行しましたが、同じエラー メッセージが表示されました。
- 他の scala バージョン (すべての 2.9x および 2.10 マイルストーン 4) をダウンロードすると、すべての REPL で同じエラー メッセージが表示されます。
- scala REPL が実行される前に fsc が実行されていないことを確認しました
- ホスト名が解決可能であることを確認しました
これは非常に興味深い問題です。幸運にも解決策を見つけることができれば、必ず解決策を投稿します。
助けてくれてどうもありがとう!
最終編集: ここと reddit (http://www.reddit.com/r/scala/comments/w5s0m/please_help_scala_only_runs_as_root_user_gives/) で、この非常に奇妙な問題を理解するのに役立つ非常に貴重な提案を提供してくれた皆さんに感謝します。解決策については、以下の私の回答を参照してください。