2016-10-03 19 views
0

こんにちは皆私は最近に移動しました。プロジェクトではUbuntuが働きました。 私が使用して、単純にファイルから読み込む必要があります:ファイルを読むときにJavaで許可が拒否される(Linux)

File root = new File(fileroot); File sourceFile = new File(root,filename);

をしかし、私は、アプリケーションを実行すると、私が取得: error: error reading FilePath; FilePath (Permession denied).

(ファイルパスは、ファイルが置かれているパスで、私は」私は、Windows上で同じコードを実行してもエラーが出ないため、Operative Systemが原因であると思います。これを解決する方法はありますか?私は、Javaからこれらのパーミッションを直接取得する方法や、コマンドを使用してターミナルからそれらのパーミッションを変更する方法を意味しますか?

事前にお返事いただきありがとうございます。

+0

このファイルを開く権限を持つユーザーとしてプログラムを実行できます。例 'sudo java -jar myProg.jar'。 – Titus

+0

もう1つは、これらのファイルがどのように**作成されているかです。最初に**読み込み権限のないファイルを作成することはあまり意味がありません。後でそれらを追加する必要があります。ですから、システム上の** umask **設定を調べることができます。あなたが最初に**可読**でないファイルを扱っていることはむしろ奇妙なようです。だから、答えは**その問題を解決するのに役立ちます**。最初に「なぜあなたがそこにいるのか」を尋ねる(そして修正する)べきである。 – GhostCat

答えて

1

メッセージのように、おそらくそのファイルを読み取る権限がありません。トラブルシューティングを行うには、追加することができます:あなたが持っていることを確認し

ls -la <path to your file> 

System.out.println(sourceFile.getAbsolutePath()); 

はあなたが読み取ろうとし、それのためのファイルシステム権限をチェックしているファイルの正確な場所を見つけるために、 rパーミッション、それ以外は取得したエラーです。

+0

私は '-rw ------- 1 root root 2044 ott 3 18:00 PATHTOTHEFILE'を取得します。 私はReadとWriteの権限があると思いますか? – giku93113

+0

これは、ユーザー 'root'だけが読むことができるということです。これを修正するには、 'chown RaggruppatoreLibriPe rAutore.java'を使ってファイルの所有権を変更するか、' chmod a + r RaggruppatoreLibriPe rAutore.java'という読み込み権限を追加する必要があります。 –

0

これを行う1つの方法は、ファイルに移動し、すべてのユーザーがファイルを読み取ることができるようにアクセス許可を変更することです。 最も簡単には端子を介してである:

chmod +r /path/to/file

すべての異なる用途がリンクをたどるとchmodについて学ぶ表示するには。 https://codex.wordpress.org/Changing_File_Permissions

+0

私はこの答えで何かをすることができました。今度はエラーがなくなりましたが、別のファイルに別のファイルがあります。どのようにフォルダ全体に権限を拡張するのですか? – giku93113

+0

chmodで再帰的なパラメータ "-R"を使うことができます(ほとんどのlinuxコマンドと同じように " ' chmod + r -R/path/to/directory/'あなたがルートディレクトリにこれを行うと、すべてのユーザにあなたのシステム全体に対する許可を許可することになります。これはデータセキュリティには残念です –

+0

私は多くのおかげさまで解決しました! – giku93113

関連する問題