「jarfileにアクセスできません」エラーの原因は何ですか?


136

IDEを使用せずにプログラムを実行したい。jarファイルと実行可能なjarファイルを作成しました。exe jarファイルをダブルクリックしても何も起こりません。cmdでコマンドを使用しようとすると、次のようになります。

Error: Unable to access jarfile <path>

私はコマンドを使用します: java -jar Calculator.jar

jarの作成方法:

  1. プロジェクトフォルダを右クリック(電卓)
  2. 選択する
  3. Javaフォルダーをクリックし、「Exectuable Jar File」を選択して、次を選択します
  4. 起動構成:メイン-電卓
  5. エクスポート先の作成
  6. 「完了」を押して利益を上げましょう まあ、そうでもない。

1
Jarのように聞こえますが、マニフェストエントリが欠落している可能性があります。
MadProgrammer 2012

JARの作成方法、JARの内容、プログラムの実行方法を示す必要があります。Javaコードはここでは無関係です。
Jochen 2012

elcipseを再起動して再コンパイルしてみましたか?Eclipseは、再起動することで回避できる奇妙なことをすることがあります。
MattS 2012

コードを読み、考えるのが難しいと思います。そして、静的なメイン関数にすべてを持ち、コンソールをクリアする単一のインスタンスメソッドを持つことの意味は何ですか?
デイブニュートン

1
私は自分の問題には答えがなく、自分で答えました。返信で感謝する以外に、コメントに感謝の気持ちを表す方法はありません。コメントをもう一度読んでください。
ジョセフ・スミス

回答:


78

私がJarファイルを実行したときにこの問題が発生しました

java -jar TestJar

の代わりに

java -jar TestJar.jar

拡張子.jarがないと、この問題も発生します。


1
これが正解です。.jar拡張子をjarファイル名に追加する必要があります。
Abhijay Kumar

10
それは常に正しい答えであるとは限りません。私はそれを追加していますが、機能しません。
アランB

私の場合、コンソール上のフォルダーであるのに、ファイルだと思いました。jarファイルは、同じ名前のフォルダーにありました。
Willy Makend

58

修繕

私はそれを別のフォルダに置いただけでうまくいきました。


62
なぜこれが起こったのか誰かが説明できますか?
アナスタシオスアンドロニディス14

7
ファイルのアクセス権の問題である可能性があるように聞こえます。
Aiden Fry

2
私はウィンドウズで、cygwinを使用して同様の問題を抱えていました。Windows以外の用途の異なるパスだから、cygwinの/cygdrive/c/C:\ 私が使用してこれを固定しrealpath --relative-to=$(pwd) path/to/jarfile、それが常に使用して相対パスisoを強制されますので/cygdrive/c/.../path/to/jarfile
のRik

1
私の瓶にも同じ問題があり、誤って瓶のパスを誤って入力しました
Ori Wiesel

1
@Rikコメントは役に立ちますが、COSのパスではDOSパスとJavaファイルでは機能しません。ここでの解決策はjava -jar $(cygpath -a -d `realpath --relative-to=$(pwd) $HOME/opt/javafile.jar`)
cy8g3n

31

[おそらくWindowsのみ]

jarが現在の作業ディレクトリにある場合でも、パスのスペースに注意してください。たとえば、私にとってこれは失敗していました:

java -jar myjar.jar

私は瓶への完全な引用されたパスを与えることによってこれを修正することができました:

java -jar "%~dp0\myjar.jar" 

クレジットは私を正しい道に導いたこの答えに行きます...


これをありがとう。別のディレクトリから実行する場合は、Linuxでもフルパスを指定する必要があります。
Pubudu

この回答の一部は、この質問で既に指定されている回答の複製です。これは、同じ方法での以前の回答です:完全な引用パス。' benezによる2015
sophievda

18

WindowsのCygWinでこの問題が発生しました。JavaがCygWinパスを(の/cygdrive/c/some/dir代わりにC:\some\dir)理解しないことを別の場所で読んだことがあります。そのため、代わりに相対パスを使用しました../../some/dir/sbt-launch.jar


CygWinでこの問題が発生していました。永遠にありがとう!
Rhyuk 2017

1
cygwinパスの代わりにcygwinでWindows形式のパスを使用する必要がある場合は、cygpath -w / path / hereコマンドを使用して、パスをWindowsの同等のパスに変換できます。
Jason Slobotski、2018年

@JasonSlobotski先端をありがとう、あなたのコメントはそれ自体で答えになるべきだと思います。
Roberto Bonvallet、2018年

14

jarファイルを起動しようとすると、同じ問題が発生しました。パスにはスペースが含まれていたため、引用符を配置する必要がありました。の代わりに:

java -jar C:\Path to File\myJar.jar

私は書く必要がありました

java -jar "C:\Path to File\myJar.jar"

私もその間にスペースがあったので、引用は私にとってはうまくいった。私は、パスにスペースがなく、引用符なしでそれを試してみましたが、それも働いた
ティモシー・

Anno 2019:このソリューションは引用符で助けてくれました!引用符とスペースがないと、私の場合は機能しません。
sophievda

11

悪いUSBを作ろうとしている同じ問題に出くわした...

このコマンドを管理コマンドで実行しようとしました

java -jar c:\fw\ducky\duckencode.jar -I c:\fw\ducky\HelloWorld.txt  -o c:\fw\ducky\inject.bin

しかし、このエラーが発生しました:

Error: unable to access jarfile c:\fw\ducky\duckencode.jar

解決

第一歩

問題のjarfileを右クリックします。プロパティをクリックします。右下隅のブロック解除タブをクリックします。ファイルがダウンロードされ、PCで作成されなかったため、ファイルはブロックされました。

第2ステップ

cmdで、jarファイルが配置されているディレクトリに変更しました。

cd C:\fw\ducky\

次に、入力dirしてファイルの名前が表示されるのを確認しましたduckencode.jar.jar

だからcmdで私は元のコマンドを変更してファイルを参照するようにしました .jar.jar

java -jar c:\fw\ducky\duckencode.jar.jar -I c:\fw\ducky\HelloWorld.txt  -o c:\fw\ducky\inject.bin

そのコマンドはエラーメッセージなしで実行され、作成しようとしていたinject.binはディレクトリに配置されました。

お役に立てれば。


おかげで、私もapktool.jar.jarと名付けられました
Mayank Kumar

8

同様の問題があり、CMDを管理者権限で実行してみましたが、問題は解決しませんでした。

基本的な事は変更になることを確認してくださいあるディレクトリをするcmdをして、現在のディレクトリあなたのjarファイルがあります。

次の手順を実行します。

1.jarファイルをデスクトップにコピーします。

  1. CMDを実行する

  2. タイプコマンド cd desktp

  3. 次に入力 java -jar filename.jar

これはうまくいくはずです。


編集:JDK-11以降(JEP 330:単一ファイルのソースコードプログラムを起動)

Java 11以降、javaコマンドラインツールは単一ファイルのソースコードを直接実行できるようになりました。例えば

java filename.java


5

OSXを使用している場合、ダウンロードされたファイルには、署名されていないアプリケーションの実行を防止するセキュリティフラグが付けられます。

これを確認するには、ファイルの拡張属性を表示できます

$ ls -l@
-rw-r--r--@ 1 dave  staff  17663235 13 Oct 11:08 server-0.28.2-java8.jar
com.apple.metadata:kMDItemWhereFroms         619
com.apple.quarantine          68

次に、属性をクリアできます

xattr -c file.jar


3

また、パラメーターのリストを適切に指定しなかった場合にも発生する可能性があります。これが私がやっていたことです:

java -jar test@gmail.com testing_subject file.txt test_send_emails.jar

正しいバージョンの代わりに:

java -jar test_send_emails.jar test@gmail.com testing_subject file.txt

3

Androidスタジオで/ libsフォルダーの下の.jarファイルを右クリックして(実行または作成)しようとすると、ときどき発生します。android stuioの上部にあるドロップダウンを選択して、アプリに変更できます。これは動作します

ここに画像の説明を入力してください


2

私にとって、PATHにあるfoldernameでネイティブのポーランド語の文字を使用すると発生します。そのため、多分、典型的でない文字を使用することが問題の原因でした。


2

私の特定の問題は、シンボリックリンク(ショートカット)を含むディレクトリを使用していたために発生しました。その結果、java -jar ../../myJar.jar自分が思っていた場所にいなかったため、試してもうまくいきませんでした。

相対ファイルパスを無視すると、修正されました。


2

私の場合、使用する推奨ファイル名jarFile*.jarはコマンドラインにありました。フォルダ内のファイルはでしたjarFile-1.2.3.jar。そのため、ファイルの名前をに変更しましたjarFile。それから私はjarFile.jar代わりに使用しjarFile*.jar、その後問題が解決しました


これを行った後、jarファイルにアクセスできない問題が解決しました。
Developine

2

フォルダの名前にスペースが含まれていると、Windowsマシンで発生する可能性があります。解決策は、 ""間のパスを入力することです。例えば:

java -jar c:\my folder\x.jar    --> 
java -jar "c:\my folder\x.jar"

2
これは質問の答えにはなりません。コメントを使用して詳細を確認してください。
AWD

2

権限の問題を回避するには、管理者として実行してください。これは、Win10ではうまくいきました。


Macはどうですか?
GvSharma

2

私はこのスレッドが数年前であることを知っており、問題も修正されました。しかし、インストーラが.jarフォーマットされているOracle WebLogic 12cとOracle OFRをインストールしようとしたときにいくつかの同様の問題が発生したため、これが将来他の誰かの助けになることを願っています。私の場合は、JDKディレクトリが引用符で囲まれていないか、タイプミスです。

実行してCommand Prompt、管理者としてこの形式でコマンドを実行します。タイプミスがある場合は、文を再確認してください。

"C:\Program Files\Java\jdk1.xxxxx\bin\java" -jar C:\Users\xxx\Downloads\xxx.jar

のように表示される場合JRE 1.xxx is not a valid JDK Java HomeJAVA_HOME、環境変数のシステム変数が正しいJDKディレクトリを指していることを確認してください。JDK 1.8以上が推奨されます(2018)。

ここで役立つスレッド、それを参照してください:なぜJDK c:program files \ java \ jre7がweblogicサーバーのインストール中に有効なJDKではないのですか?


1

TextMateまたは何かが二重引用符をUnicodeの二重引用符に置き換えた場合、同様の問題が発生しました。

SELENIUM_SERVER_JARをユニコードの二重引用符から通常の二重引用符に変更すると、問題が解決しました。


1

これは、間違ったパスでファイルを探しているためです。1。ファイルを配置したフォルダのパスを探します。2。コマンドでディレクトリcdを変更し、正しいパスを使用します。


1

NetBeansを使用していて、同じ問題がありました。プロジェクトのビルドとクリーンを実行した後、プログラムは実行可能になりました。Javaのドキュメントによると、build / cleanコマンドは基本的にプロジェクトを最初から再構築し、過去のコンパイルを削除するためのものです。これがお役に立てば幸いです。また、私はドキュメントを読みます。OracleにはNetBeansとJavaの学習コースがあります。非常に役立ちます。幸運を!


1

多分あなたはあなたのjarの間違ったバージョンを指定しました。


1

最後に、jarファイルをJDKと同じフォルダーに貼り付けたので、パスを含める必要はありませんでした。また、管理者としてコマンドプロンプトを開く必要がありました。

  1. コマンドプロンプトを右クリックし、[管理者として実行]をクリックします。
  2. jdkを保存したディレクトリに移動します。
  3. コマンドプロンプトで次のように入力します。 java.exe -jar <jar file name>.jar


0

管理者権限で実行しようとしましたか?つまり、「別のユーザーとして実行」でコマンドを実行し、適切な管理者資格情報を持つ管理者を選択します

私のために働いた


0

私はこれを試していました:

ファイルに読み取り、書き込み、権限を与えた後、権限を実行します。

chmod 777 java-repl.jar

alias jr="java -jar $HOME/Dev/java-repl/java-repl.jar"

bla bla ...にアクセスできません...これはMac OS上でしたが

だから私はこれを試しました:

alias jr="cd $HOME/Dev/java-repl/ && java -jar java-repl.jar"


0

これは機能しませんでした "jarfileにアクセスできません"

"C:\Program Files\java\jdk-13+33-jre\bin\javaw.exe" -jar "C:\Program Files\Maxim Integrated Products\1-Wire Drivers x64\ OneWireViewer.jar"

これは機能します

"C:\Program Files\java\jdk-13+33-jre\bin\javaw.exe" -jar "C:\Program Files\Maxim Integrated Products\1-Wire Drivers x64\OneWireViewer.jar"

違いは、OneWireViewer.jarの前にスペースが1つあることです。引用符で囲まれていても、他のスペースがあっても構いません。


0

私にとっては、このjarの作成に使用されたコンパイル済みのJavaバージョン(8)ではなく、デフォルトのJavaバージョン(7)で実行したために起こります。

だから私は使用しました:

%Java8_64%\bin\java -jar myjar.jar

Java 7バージョンの代わりに:

java -jar myjar.jar

0

あなたがWSLにいて、言うガイドに従っている場合、これはこう言います:

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb

完全パスを指定したとしても、実際には完全パスを指定する必要がありますjava.library.path

java -Djava.library.path=/mnt/c/dynamodb_local/DynamoDBLocal_lib -jar /mnt/c/dynamodb_local/DynamoDBLocal.jar -sharedDb

0

これは権限の問題です。ディレクトリがユーザーの下にあるかどうかを確認してください。それが別のフォルダで作業している理由です!


-1

最初に変数を作成しました %JAVA_HOME% :

ファイルをダウンロードしたら、UNBLOCK TAB上記の「maartencls」の投稿にあるように、ファイルのプロパティをチェックインしてください。

c:\users\my user\downloads\location of the file\all> java -jar yourfilename.jar

これが問題を解決することを願っています:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.