状況
ubuntuから、windowsにあるrubyファイルを実行しようと思い、
ruby /mnt/windows-hdd/src/main.rb
と入力してみると、以下のようなエラーが表示されます。
該当行
require "./window"
エラー例
/usr/local/lib/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- ./window (LoadError)
from /usr/local/lib/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /mnt/windows-hdd/src/main.rb:3:in `'
windowsで実行すると正しく動くのになぜ動かないのだろうか。
また、LoadErrorとなっているコードを見直しても、間違っているようには見えません。
原因
簡単にまとめると、カレントディレクトリが実行ファイルのあるフォルダでないからです。
どうやらカレントディレクトリを中心として、 相対的な位置でファイルを読み込んでいるようです。
ファイルのある位置からの相対的な位置だと思っていた私は、とても驚きました。
カレントディレクトリとは
コマンドを実行するときのディレクトリのこと。確認方法
Linux :
pwd
windows
: cd
対処
カレントディレクトリを実行ファイルのあるフォルダに合わせると、エラーは表示されなくなります。
カレントディレクトリの移動方法
Linux : cd (ディレクトリ名)
windows : cd /d (ディレクトリ名)
0 件のコメント:
コメントを投稿