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:
- Klik met de rechtermuisknop op de projectmap (Calculator)
- Selecteer
- Klik op Java-map en selecteer “Uitvoerbaar Jar-bestand” en selecteer vervolgens volgende
- Startconfiguratie: hoofd – rekenmachine
- Exportbestemming maken
- 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:
-
Kopieer het jar-bestand naar het bureaublad.
-
CMD uitvoeren
-
Type opdracht
cd desktop
-
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
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.
- Klik met de rechtermuisknop op Opdrachtprompt en “Als administrator uitvoeren”
- Navigeer naar de map waarin je je jdk hebt opgeslagen
- 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!