Wat veroorzaakt de fout ‘Kan geen toegang krijgen tot jarfile’?

Ik wil mijn programma uitvoeren zonder een IDE te gebruiken.
Ik heb een jar-bestand en een uitvoerbaar jar-bestand gemaakt. Wanneer
Ik dubbelklik op het exe jar-bestand, er gebeurt niets, en wanneer ik het commando in cmd probeer te gebruiken, krijg ik dit:

Error: Unable to access jarfile <path>

Ik gebruik het commando: java -jar Calculator.jar

Hoe ik de pot heb gemaakt:

  1. Klik met de rechtermuisknop op de projectmap (Calculator)
  2. Selecteer
  3. Klik op Java-map en selecteer “Uitvoerbaar Jar-bestand” en selecteer vervolgens volgende
  4. Startconfiguratie: hoofd – rekenmachine
  5. Exportbestemming maken
  6. Klik op “Voltooien” en profiteer! Nou, niet echt.

Antwoord 1, autoriteit 100%

Ik was dit probleem tegengekomen toen ik mijn Jar-bestand uitvoerde als

java -jar TestJar

in plaats van

java -jar TestJar.jar

Het ontbreken van de extensie .jar veroorzaakt ook dit probleem.


Antwoord 2, autoriteit 80%

Opgelost

Ik heb het zojuist in een andere map geplaatst en het werkte.


Antwoord 3, autoriteit 42%

[Mogelijk alleen Windows]

Pas op voor spaties in het pad, zelfs als uw jar zich in de huidige werkmap bevindt. Voor mij mislukte dit bijvoorbeeld:

java -jar myjar.jar

Ik heb dit kunnen oplossen door het volledige, geciteerde pad naar de pot te geven:

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

Het krediet gaat naar dit antwoord omdat ze me op het juiste pad hebben gezet….


Antwoord 4, autoriteit 23%

Ik had dit probleem onder CygWin in Windows. Ik heb elders gelezen dat Java de CygWin-paden niet begrijpt (/cygdrive/c/some/dir in plaats van C:\some\dir) – dus ik gebruikte een relatieve pad in plaats daarvan: ../../some/dir/sbt-launch.jar.


Antwoord 5, autoriteit 18%

Ik had hetzelfde probleem toen ik het jar-bestand probeerde te starten. Het pad bevatte een spatie, dus ik moest er aanhalingstekens omheen plaatsen. In plaats van:

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

ik moest schrijven

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

Antwoord 6, autoriteit 13%

Ik kwam net hetzelfde probleem tegen toen ik probeerde een slechte USB te maken…

Ik heb geprobeerd dit commando uit te voeren in admin cmd

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

Maar kreeg deze fout:

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

Oplossing

1e stap

Klik met de rechtermuisknop op het betreffende jarfile. Klik op eigenschappen.
Klik op het tabblad deblokkeren in de rechterbenedenhoek.
Het bestand is geblokkeerd, omdat het is gedownload en niet op mijn pc is gemaakt.

2e stap

In de cmd heb ik de map gewijzigd naar waar het jar-bestand zich bevindt.

cd C:\fw\ducky\

Toen typte ik dir en zag dat het bestand duckencode.jar.jar

heette

Dus in cmd heb ik de originele opdracht gewijzigd om te verwijzen naar het bestand met .jar.jar

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

Dat commando werd uitgevoerd zonder foutmeldingen en de inject.bin die ik probeerde te maken, bevond zich nu in de map.

Hopelijk helpt dit.


Antwoord 7, autoriteit 9%

Ik had een soortgelijk probleem en ik heb zelfs geprobeerd mijn CMD uit te voeren met beheerdersrechten, maar het probleem is niet opgelost.

Het belangrijkste is om ervoor te zorgen dat u de Directory in cmd wijzigt in de huidige directory waar uw jar-bestand zich bevindt.

Voer de volgende stappen uit:

  1. Kopieer het jar-bestand naar het bureaublad.

  2. CMD uitvoeren

  3. Type opdracht cd desktop

  4. Typ vervolgens java -jar filename.jar

Dit zou moeten werken.


Bewerken: vanaf JDK-11 ( JEP 330 : Start programma’s met broncode voor één bestand )

Sinds Java 11 kan het Java-opdrachtregelprogramma rechtstreeks een broncode met één bestand uitvoeren. bijv.

java filename.java

Antwoord 8, autoriteit 6%

Als je OSX gebruikt, worden gedownloade bestanden getagd met een beveiligingsvlag die voorkomt dat niet-ondertekende applicaties worden uitgevoerd.

om dit te controleren kunt u uitgebreide attributen in het bestand bekijken

$ 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

U kunt de kenmerken vervolgens wissen met

xattr -c file.jar

Antwoord 9, autoriteit 5%

Dit werkte voor mij.

cd /path/to/the/jar/
java -jar ./Calculator.jar

Antwoord 10, autoriteit 3%

Het kan ook gebeuren als u uw lijst met parameters niet correct opgeeft. Dit is wat ik aan het doen was:

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

In plaats van de juiste versie:

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

Antwoord 11, autoriteit 3%

soms gebeurt het wanneer u een .jar-bestand probeert (uitvoeren of maken) in de map /libs door er met de rechtermuisknop op te klikken in Android Studio. je kunt de vervolgkeuzelijst bovenaan Android stuio selecteren en deze wijzigen in app. Dit zal werken

voer hier de afbeeldingsbeschrijving in


Antwoord 12, autoriteit 3%

Geen van de gegeven antwoorden werkte voor mij op macOS 11 Big Sur. Het probleem bleek te zijn dat programma’s speciale toestemming nodig hebben om toegang te krijgen tot de mappen Bureaublad, Documenten en Downloads, en Java breekt zowel de uitzondering voor direct geopende bestanden als de pop-up met toestemmingsverzoeken.

Oplossingen:

  • Verplaats de .jar naar een map die zich niet (en niet onder) Documenten, Desktop of Downloads bevindt.
  • Verleen de toestemming handmatig. Ga naar Systeemvoorkeuren > Beveiliging en privacy > Privacy > Bestanden en mappen > java en vink de juiste mappen aan.

Antwoord 13, autoriteit 2%

Bij mij gebeurt het als je native Poolse tekens gebruikt in de mapnaam die in het PATH staat.
Dus misschien was het gebruik van atypische tekens de reden van het probleem.


Antwoord 14, autoriteit 2%

Mijn specifieke probleem werd veroorzaakt omdat ik met mappen werkte die symbolische links (snelkoppelingen) bevatten. Bijgevolg werkte het proberen van java -jar ../../myJar.jar niet omdat ik niet was waar ik dacht dat ik was.

Het negeren van relatieve bestandspaden loste het meteen op.


Antwoord 15, autoriteit 2%

In mijn geval was de voorgestelde bestandsnaam jarFile*.jar in de opdrachtregel. Het bestand in de map was jarFile-1.2.3.jar . Dus hernoemde ik het bestand naar jarFile. Daarna gebruikte ik jarFile.jar in plaats van jarFile*.jar en toen werd het probleem opgelost


Antwoord 16, autoriteit 2%

Het kan gebeuren op een Windows-computer als er spaties in de namen van de map staan. De oplossing zou zijn om het pad tussen ” ” in te voeren.
Bijvoorbeeld:

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

Antwoord 17, autoriteit 2%

Probeer het als beheerder uit te voeren om problemen met machtigingen te voorkomen. Dit werkte voor mij op Win10.


Antwoord 18, autoriteit 2%

Ik weet dat deze thread jaren geleden is en het probleem is ook opgelost. Maar ik hoop dat dit iemand anders in de toekomst kan helpen, aangezien ik soortgelijke problemen ben tegengekomen toen ik probeerde Oracle WebLogic 12c en Oracle OFR te installeren, waarvan het installatieprogramma in .jar-indeling is. In het mijne geval was het ofwel de JDK-directory niet tussen aanhalingstekens geplaatst of gewoon een typfout.

Voer Command Prompt uit als beheerder en voer de opdracht uit in deze indeling. Controleer de zin nogmaals als er een typefout is.

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

Als er iets wordt weergegeven als JRE 1.xxx is not a valid JDK Java Home, zorg er dan voor dat de systeemvariabelen voor JAVA_HOME in Omgevingsvariabelen naar de juiste JDK verwijzen map. JDK 1.8 of hoger wordt aanbevolen (2018).

Een nuttige thread hier, je kunt ernaar verwijzen: Waarom is het tonen van uw JDK c:program files\java\jre7 geen geldige JDK tijdens het installeren van de weblogic server?


Antwoord 19

Ik had een soortgelijk probleem waarbij TextMate of iets anders de dubbele aanhalingstekens verving door de unicode dubbele aanhalingstekens.

Mijn SELENIUM_SERVER_JAR wijzigen van de unicode dubbele aanhalingstekens naar gewone dubbele aanhalingstekens en dat loste mijn probleem op.


Antwoord 20

dit komt omdat u het bestand in het verkeerde pad zoekt
1. zoek het pad van de map waar je het bestand hebt geplaatst
2. verander de map cd in cmd gebruik het juiste pad


Antwoord 21

Ik gebruik NetBeans en had hetzelfde probleem. Nadat ik het build and clean-project had uitgevoerd, was mijn programma uitvoerbaar. De Java-documentatie zegt dat het build/clean-commando is bedoeld om het project in principe helemaal opnieuw op te bouwen en eventuele eerdere compilaties te verwijderen. Ik hoop dat dit helpt. Ik zou ook de documentatie lezen. Oracle heeft NetBeans en Java leertrajecten. Erg behulpzaam. Veel succes!


Antwoord 22

Misschien heb je de verkeerde versie van je jar opgegeven.


Antwoord 23

Ik heb eindelijk mijn jar-bestand in dezelfde map als mijn JDK geplakt, zodat ik de paden niet hoefde op te nemen. Ik moest ook de opdrachtprompt openen als beheerder.

  1. Klik met de rechtermuisknop op Opdrachtprompt en “Als administrator uitvoeren”
  2. Navigeer naar de map waarin je je jdk hebt opgeslagen
  3. Typ in de opdrachtprompt: java.exe -jar <jar file name>.jar

Antwoord 24

Bewaar het bestand in dezelfde map waarin u het uitpakt. Dat werkte voor mij.


Antwoord 25

Voor mij gebeurt het omdat ik het gebruik met de standaard java-versie (7) en niet met de gecompileerde java-versie (8) die is gebruikt om deze jar te maken.

Dus ik gebruikte:

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

In plaats van Java 7-versie:

java -jar myjar.jar

Antwoord 26

Heb je geprobeerd het uit te voeren onder beheerdersrechten?
wat betekent, het uitvoeren van de opdracht in “Uitvoeren als” en selecteer vervolgens beheerder met de juiste beheerdersreferenties

werkte voor mij


Antwoord 27

Ik probeerde dit:

Nadat het bestand lees-, schrijf- en uitvoerrechten heeft gegeven:

chmod 777 java-repl.jar

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

Kan geen toegang krijgen tot bla bla…, dit was echter op Mac OS

Dus ik probeerde dit:

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


Antwoord 28

Dit werkte niet “Kan jarfile niet openen”

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

Dit werkt wel

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

Het verschil is de enkele spatie voor OneWireViewer.jar, ondanks het feit dat deze tussen aanhalingstekens staat en zelfs andere spaties heeft.


Antwoord 29

Als je WSL gebruikt en een gids volgt die zegt, zegt dit:

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

Je moet eigenlijk het volledige pad opgeven, ook al heb je het opgegeven in het gedeelte java.library.path.

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

Antwoord 30

Dit is een machtigingsprobleem, kijk of de map onder uw Gebruiker staat.
Daarom werkt het in een andere map!

LEAVE A REPLY

Please enter your comment!
Please enter your name here

two × 4 =

Other episodes