Che cosa causa l'errore" Impossibile accedere a jarfile"?


Voglio eseguire il mio programma senza usare un IDE. Ho creato un file jar e un file jar eseguibile. Quando Faccio doppio clic sul file jar exe, non succede nulla e quando provo a usare il comando in cmd mi dà questo:

Error: Unable to access jarfile <path>

Io uso il comando: java -jar Calculator.jar

Come ho creato il barattolo:

  1. Fare clic destro sulla cartella del progetto (Calcolatrice)
  2. Seleziona
  3. Fare clic sulla cartella Java e selezionare "File Jar eseguibile" , quindi selezionare successivo
  4. Configurazione di avvio: Main-Calculator
  5. Crea destinazione di esportazione
  6. Hit "Fine" e profitto! Beh, non proprio.
Author: Raedwald, 2012-08-14

30 answers

Avevo riscontrato questo problema quando avevo eseguito il mio file Jar come

java -jar TestJar

Invece di

java -jar TestJar.jar

Manca l'estensione .anche jar causa questo problema.

 85
Author: Vinay Kadalagi, 2019-04-22 08:58:16

Fisso

L'ho appena inserito in una cartella diversa e ha funzionato.

 67
Author: Joseph Smith, 2017-10-13 07:41:24

[Forse solo Windows]

Fai attenzione agli spazi nel percorso, anche quando il tuo jar si trova nella directory di lavoro corrente. Ad esempio, per me questo stava fallendo:

java -jar myjar.jar

Sono stato in grado di risolvere questo problema dando il percorso completo e citato al barattolo:

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

Il merito va a questa risposta per avermi messo sulla strada giusta....

 36
Author: Robert Brown, 2017-05-23 12:34:41

Ho avuto questo problema sotto CygWin in Windows. Ho letto altrove che Java non capisce i percorsi CygWin (/cygdrive/c/some/dir invece di C:\some\dir) - quindi ho usato invece un percorso relativo: ../../some/dir/sbt-launch.jar.

 20
Author: radumanolescu, 2016-08-04 17:18:56

Ho avuto lo stesso problema durante il tentativo di avviare il file jar. Il percorso conteneva uno spazio, quindi ho dovuto posizionare le virgolette. Invece di:

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

Ho dovuto scrivere

java -jar "C:\Path to File\myJar.jar"
 14
Author: benez, 2020-03-14 19:32:29

Appena incontrato lo stesso problema cercando di fare una cattiva USB...

Ho provato a eseguire questo comando in admin cmd

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

Ma ottenuto questo errore:

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

Soluzione

1a fase

Fare clic con il pulsante destro del mouse sul file in questione. Fare clic su Proprietà. Fare clic sulla scheda Sblocca nell'angolo in basso a destra. Il file è stato bloccato, perché è stato scaricato e non creato sul mio PC.

2 ° passo

Nel cmd ho cambiato la directory in dove si trova il file jar.

cd C:\fw\ducky\

Poi ho digitato dir e ho visto che il file si chiamava duckencode.jar.jar

Quindi in cmd ho cambiato il comando originale per fare riferimento al file con .jar.jar

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

Quel comando eseguito senza messaggi di errore e l'inject.bin che stavo cercando di creare ora si trovava nella directory.

Spero che questo aiuti.

 11
Author: Leon thomas, 2015-10-23 21:03:42

Ho avuto un problema simile e ho persino provato a eseguire il mio CMD con i diritti di amministratore, ma non ha risolto il problema.

La cosa fondamentale è assicurarsi di cambiare la directory in cmd nella directory corrente dove si trova il file jar.

Procedere come segue:

  1. Copia il file jar sul desktop.

  2. Eseguire CMD

  3. Digitare il comando cd desktop

  4. Quindi digitare java -jar filename.jar

Questo dovrebbe funzionare.


Modifica : da JDK-11 in poi ( JEP 330: avvia programmi con codice sorgente a file singolo)

Da Java 11, java strumento a riga di comando è stato in grado di eseguire un singolo file di codice sorgente direttamente. ad esempio

java filename.java
 8
Author: Vishwa Ratna, 2020-10-03 12:12:12

Se si utilizza OSX, i file scaricati vengono contrassegnati con un flag di sicurezza che impedisce l'esecuzione di applicazioni non firmate.

Per verificare questo è possibile visualizzare gli attributi estesi sul file

$ 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

È quindi possibile cancellare gli attributi con

xattr -c file.jar
 6
Author: nick fox, 2017-10-13 10:24:36

Questo ha funzionato per me.

cd /path/to/the/jar/

java -jar ./Calculator.jar
 5
Author: Bastian Cáceres Pino, 2016-11-15 18:18:30

Può accadere anche se non fornisci correttamente la tua lista di parametri. Ecco cosa stavo facendo:

java -jar [email protected] testing_subject file.txt test_send_emails.jar

Invece della versione corretta:

java -jar test_send_emails.jar [email protected] testing_subject file.txt
 3
Author: Buffalo, 2015-07-15 08:06:37

A volte succede quando si tenta di (eseguire o creare) un .file jar nella cartella / libs facendo clic destro su di esso in Android studio. è possibile selezionare il menu a discesa nella parte superiore di Android stuio e cambiarlo in app . Questo funzionerà

inserisci qui la descrizione dell'immagine

 3
Author: anand krish, 2016-02-17 10:44:46

Per me succede se usi caratteri polacchi nativi in foldername che si trova nel PERCORSO. Quindi forse usare caratteri atipici era la ragione del problema.

 2
Author: Huxwell, 2015-10-08 09:52:17

Il mio particolare problema è stato causato perché stavo lavorando con directory che coinvolgevano collegamenti simbolici (scorciatoie). Di conseguenza, provare java -jar ../../myJar.jar non ha funzionato perché non ero dove pensavo di essere.

Ignorando i percorsi dei file relativi, è stato corretto.

 2
Author: MattSayar, 2015-11-18 23:31:55

Nel mio caso il nome del file suggerito da utilizzare era jarFile*.jar nella riga di comando. Il file nella cartella era jarFile-1.2.3.jar. Così ho rinominato il file in jarFile. Quindi ho usato jarFile.jar invece di jarFile*.jar e quindi il problema è stato risolto

 2
Author: suku, 2017-01-22 06:41:19

Può accadere su una macchina Windows quando si hanno spazi nei nomi della cartella. La soluzione sarebbe quella di entrare nel percorso tra "". Ad esempio:

java -jar c:\my folder\x.jar    --> 
java -jar "c:\my folder\x.jar"
 2
Author: assaf, 2017-10-31 10:24:25

Per evitare problemi di autorizzazione, provare a eseguirlo come amministratore. Questo ha funzionato per me su Win10.

 2
Author: Gico, 2018-03-14 15:14:35

So che questo thread è anni fa e anche il problema è stato risolto. Ma spero che questo possa aiutare qualcun altro in futuro poiché ho riscontrato alcuni problemi simili mentre ho provato a installare Oracle WebLogic 12c e Oracle OFR in cui il suo programma di installazione è in formato .jar. Per il mio caso, non è stato racchiuso la directory JDK tra virgolette o semplicemente errore di battitura.

Eseguire Command Prompt come amministratore ed eseguire il comando in questo formato. Ricontrolla la frase se c'è un errore di battitura.

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

Se mostra qualcosa come JRE 1.xxx is not a valid JDK Java Home, assicurati che le variabili di sistema per JAVA_HOME nelle variabili di ambiente puntino alla directory JDK corretta. JDK 1.8 o superiore è raccomandato (2018).

Un thread utile qui, puoi riferirlo: Perché mostra il tuo JDK c:program files\java\jre7 non è un JDK valido durante l'installazione di weblogic server?

 2
Author: not_Prince, 2018-10-23 07:28:26

Ho avuto un problema simile in cui TextMate o qualcosa ha sostituito le virgolette doppie con le virgolette unicode.

Cambiando il mio SELENIUM_SERVER_JAR dai doppi apici unicode ai doppi apici regolari e questo ha risolto il mio problema.

 1
Author: TankorSmash, 2016-03-30 18:05:20

Questo perché stai cercando il file nel percorso sbagliato 1. cerca il percorso della cartella in cui hai posizionato il file 2. cambia la directory cd in cmd usa il percorso giusto

 1
Author: felipe, 2016-06-19 21:39:10

Io uso NetBeans e ho avuto lo stesso problema. Dopo aver eseguito build e clean project, il mio programma era eseguibile. La documentazione Java dice che il comando build/clean serve per ricostruire il progetto da zero e rimuovere qualsiasi compilazione passata. Spero che questo aiuti. Inoltre, avevo letto la documentazione. Oracle ha percorsi di apprendimento NetBeans e Java. Molto utile. In bocca al lupo!

 1
Author: user8315373, 2017-07-16 13:43:45

Forse hai specificato la versione sbagliata del tuo jar.

 1
Author: cosbor11, 2017-09-21 21:52:43

Alla fine ho incollato il mio file jar nella stessa cartella del mio JDK, quindi non ho dovuto includere i percorsi. Ho anche dovuto aprire il prompt dei comandi come amministratore.

  1. Fare clic destro Prompt dei comandi e "Esegui come amministratore"
  2. Accedere alla directory in cui è stato salvato il jdk in
  3. Nel prompt dei comandi digitare: java.exe -jar <jar file name>.jar
 1
Author: Michaela Burns, 2020-01-14 15:04:46

Mantieni il file nella stessa directory in cui lo stai estraendo. Ha funzionato per me.

 1
Author: Aishwary joshi, 2020-01-22 02:18:35

Per me succede perché lo eseguo con la versione java predefinita (7) e non con la versione java compilata (8) utilizzata per creare questo jar.

Così ho usato:

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

Invece di java 7 versione:

java -jar myjar.jar
 1
Author: Adir D, 2020-02-09 19:19:14

Hai provato a eseguirlo sotto administrator privoleges? significato, eseguendo il comando in "Esegui come" e quindi selezionare amministratore con credenziali di amministratore appropriate

Ha funzionato per me

 0
Author: Nick_Stubborn_Mex., 2019-05-14 20:28:37

Stavo provando questo:

Dopo aver dato al file i privilegi di lettura, scrittura, esecuzione:

chmod 777 java-repl.jar

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

Impossibile accedere a bla bla..., questo era su Mac OS anche se

Quindi ho provato questo:

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

 0
Author: Kinglee, 2019-07-23 09:37:35

Questo non ha funzionato "Impossibile accedere al file 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"

Questo funziona

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

La differenza è il singolo spazio davanti a OneWireViewer.jar non resiste al fatto che sia circondato da virgolette e abbia persino altri spazi.

 0
Author: angar, 2019-10-13 15:21:49

Se sei su WSL, e seguendo una guida che dice, dice questo:

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

In realtà è necessario specificare il percorso completo, anche se è stato fornito nella parte java.library.path.

java -Djava.library.path=/mnt/c/dynamodb_local/DynamoDBLocal_lib -jar /mnt/c/dynamodb_local/DynamoDBLocal.jar -sharedDb
 0
Author: Pureferret, 2020-04-21 14:10:23

Questo è un problema di autorizzazione, controlla se la directory è sotto il tuo utente. Ecco perché sta lavorando in un'altra cartella!

 0
Author: Dimitrios, 2020-07-31 13:05:49

Rinominare il file jar e provare

Spiegazione : sì, so che ci sono molte risposte ancora voglio aggiungere un punto qui che ho affrontato.

Ho costruito il jar e l'ho spostato nel server in cui distribuisco (questo è il processo normale) qui il nome del file che ho spostato esisteva già nel server, qui il file sovrascriverà ovviamente a destra. In questo caso, ho affrontato questo problema. forse al momento dell'override può esserci un problema di copia del permesso.

Spero che questo ti aiuti qualcuno.

 0
Author: Sainath Pabba, 2020-08-03 14:12:17