web-dev-qa-db-ja.com

コンパイル中にアクセスが拒否されましたJava

2つのJavaファイルを作成しました:Pizza.JavaおよびPizzaOrder.Java

次のようなコマンドプロンプトでjavacを使用してコードをコンパイルしてみました。

javac pizzaorder.Java

アクセスが拒否されましたエラーが発生しています:

C:\Users\Meutex>cd\

C:\>cd "Program Files\Java\jdk1.7.0\bin"

C:\Program Files\Java\jdk1.7.0\bin>javac PizzaOrder.Java
PizzaOrder.Java:23: error: cannot find symbol
                Pizza order = new Pizza ();
                ^
  symbol:   class Pizza
  location: class PizzaOrder
PizzaOrder.Java:23: error: cannot find symbol
                Pizza order = new Pizza ();
                                  ^
  symbol:   class Pizza
  location: class PizzaOrder
2 errors

C:\Program Files\Java\jdk1.7.0\bin>javac Pizza.Java
Pizza.Java:11: error: error while writing Pizza: Pizza.class (Access is denied)
public class Pizza {
       ^
1 error

C:\Program Files\Java\jdk1.7.0\bin>javac Pizza.Java

このエラーの原因は何ですか?

8
Mad coder.

システムにソースファイルを配置しようとしているようですC:\Program Fiels\Java\jdk1.7.0\binディレクトリ。システムパスに配置するのではなく、ソースファイル用の独自のディレクトリ(自分のホームディレクトリの下)を作成してみてください。おそらくそのディレクトリへの書き込み権限がありません(ただし、ソースファイルをそこにどのように取得したかはわかりません)。

15
Greg Hewgill

Access Deniedエラーは、\Program Files内のjdkディレクトリ内でこのプログラムをコンパイルしようとしていることが原因である可能性が高く、これはユーザーが普遍的に書き込むことはできません。コーディングは別の場所で行う必要があります(おそらくMy Documentsディレクトリ、または少なくとも書き込み権限のある場所)。

7
Marc B

ディレクトリに書き込む権限がありません。ソースコードをJDKのbinディレクトリに配置しないでください。

代わりに、そのbinディレクトリをPATHに追加し、ユーザーのホームフォルダーに作業ディレクトリを作成します。

Windows 7でパスを設定する方法 を参照してください。

3
stivlo

これはJavaと関係がないことはわかっていますが、試してみてください。
Windowsエクスプローラーで遊んでいるときに気付きました。

  1. C:\ Program Files \に移動します
  2. Javaフォルダを右クリックし、プロパティをクリックします。セキュリティタブを選択します。
  3. そこで、「編集」ボタンをクリックすると、PERMISSIONS FOR Javaウィンドウがポップアップします。
  4. [追加]をクリックすると、新しいウィンドウがポップアップします。 [オブジェクト名を入力してください]ボックスにユーザーアカウント名を入力し、[OK]をクリックします(既に存在する場合は、この手順をスキップします)。
  5. 「PERMISSIONS OF Java」ウィンドウに、CREATOR OWNER、SYSTEMなどのいくつかのクリック可能なオプションが表示されます。そのうちの1つがユーザー名です。それをクリックし、サブウィンドウの権限のフルコントロールオプションをチェックします。
  6. 最後に、適用して大丈夫です。

これはそれでなければなりません。これで、他のことをする代わりに、ビン内のJavaプログラムをコンパイルおよび実行できます。

1
Shrik