Ik probeer een Java-programma uit te voeren vanaf de opdrachtregel in Windows. Hier is mijn code:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class CopyFile
{
public static void main(String[] args)
{
InputStream inStream = null;
OutputStream outStream = null;
try
{
File afile = new File("input.txt");
File bfile = new File("inputCopy.txt");
inStream = new FileInputStream(afile);
outStream = new FileOutputStream(bfile);
byte[] buffer = new byte[1024];
int length;
// copy the file content in bytes
while ((length = inStream.read(buffer)) > 0)
{
outStream.write(buffer, 0, length);
}
inStream.close();
outStream.close();
System.out.println("File is copied successful!");
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
Ik weet niet zeker hoe ik het programma moet uitvoeren – enige hulp? Is dit mogelijk op Windows? Waarom is het anders dan een andere omgeving (ik dacht dat JVM één keer geschreven was, overal werd uitgevoerd)?
Antwoord 1, autoriteit 100%
Bron: javaindos.
Stel dat uw bestand zich in C:\mywork\ bevindt
Opdrachtprompt uitvoeren
C:\> cd \mywork
Dit maakt C:\mywork de huidige directory.
C:\mywork> dir
Hiermee wordt de inhoud van de map weergegeven. Je zou moeten zien
filenamehere.java tussen de bestanden.C:\mywork> set path=%path%;C:\Program Files\Java\jdk1.5.0_09\bin
Dit vertelt het systeem waar het JDK-programma’s kan vinden.
C:\mywork> javac filenamehere.java
Hiermee wordt javac.exe, de compiler, uitgevoerd. Je zou niets anders moeten zien dan de
volgende systeemprompt…C:\mywork> dir
javac heeft het bestand filenamehere.class gemaakt. Je zou moeten zien
bestandsnaamhere.java en bestandsnaamhere.class tussen de bestanden.C:\mywork> java filenamehere
Hierdoor wordt de Java-interpreter uitgevoerd. Je zou dan je programma moeten zien
uitvoer.Als het systeem javac niet kan vinden, controleer dan de opdracht set path. Als javac
wordt uitgevoerd, maar u krijgt fouten, controleer uw Java-tekst. Als het programma
compileert maar je krijgt een uitzondering, controleer de spelling en
hoofdlettergebruik in de bestandsnaam en de klassenaam en de java
HelloWorld-opdracht. Java is hoofdlettergevoelig!
Antwoord 2, autoriteit 46%
Om het antwoord aan te vullen:
-
Het Java-bestand
TheJavaFile.java
-
Compileer het Java-bestand naar een *.class-bestand
javac TheJavaFile.java
- Hiermee wordt een bestand
TheJavaFile.class
gemaakt
- Hiermee wordt een bestand
-
Uitvoering van het Java-bestand
java TheJavaFile
-
Een uitvoerbaar
*.jar
-bestand maken-
Je hebt hier twee opties –
-
Met een extern manifestbestand :
-
Maak het manifestbestand zeg – MANIFEST.mf
-
Het MANIFEST-bestand is niets anders dan een expliciete invoer van de hoofdklasse
-
jar -cvfm TheJavaFile.jar MANIFEST.mf TheJavaFile.class
-
-
Uitvoerbaar per ingangspunt:
jar -cvfe TheJavaFile.jar <MainClass> TheJavaFile.class
-
-
-
Het Jar-bestand uitvoeren
java -jar TheJavaFile.jar
Antwoord 3, autoriteit 9%
Compileereen Java-bestand om een klasse te genereren:
javac filename.java
Voerde gegenereerde klasse uit:
java filename
Antwoord 4, autoriteit 9%
In het geval dat uw Java-klasse zich in een pakket bevindt. Stel dat uw Java-klasse met de naam ABC.java
aanwezig is in com.hello.programs
, dan moet u deze uitvoeren met de pakketnaam.
Compileer het op de gebruikelijke manier:
C:\SimpleJavaProject\src\com\hello\programs > javac ABC.java
Maar om het uit te voeren, moet u de pakketnaam opgeven en vervolgens uw java-klassenaam:
C:\SimpleJavaProject\src > java com.hello.programs.ABC
Antwoord 5, Autoriteit 4%
Aangenomen van het bestand wordt “Copyfile.java” genoemd, doe het volgende:
javac CopyFile.java
java -cp . CopyFile
De eerste regel compileert de broncode in uitvoerbare byte-code. De tweede regel voert deze uit, eerst de huidige map aan het klassenpad (net in het geval).
Antwoord 6, Autoriteit 4%
Sinds Java 11, java
Opdrachtregelgereedschap heeft de broncode van één bestand rechtstreeks kunnen uitvoeren. b.g
java HelloWorld.java
Dit was een verbetering met JEP 330: https://openjdk.java.net/jeps/330
Zie voor de details van het gebruik en de beperkingen, zie de handleiding van uw Java-implementatie, zoals een van Oracle: https://docs.oracle.com/en/java/javase/11/tools/java.html
Antwoord 7, Autoriteit 4%
Het is gemakkelijk. Als u uw bestand hebt opgeslagen als A.Text eerste ding dat u zou moeten doen, is het opslaan als A.Java. Nu is het een Java-bestand.
Nu moet u CMD en het pad naar u A.java-bestand openen voordat u deze compileert. U kunt dit voor dat.
U kunt uw bestand compileren met opdracht
javac a.java
Voer het vervolgens uit met
Java A
Dus dat is hoe je een Java-programma compileert en een Java-programma in CMD uitvoert.
Je kunt ook door dit materiaalgaan, dat is Java diepgaande lessen. Veel dingen die je moet begrijpen in Java worden daar behandeld voor beginners.
Antwoord 8, autoriteit 3%
Je kunt elke Java-bron compileren met javac in de opdrachtregel; bijv. javac CopyFile.java.
Uitvoeren: java CopyFile.
Je kunt ook alle java-bestanden compileren met javac *.java, zolang ze zich in dezelfde map bevinden
Als je een probleem hebt met als resultaat “Kan hoofdklasse niet vinden of laden”, heb je misschien geen
jre op je pad. Kijk eens naar deze vraag:
Kan hoofdklasse niet vinden of laden
Antwoord 9, autoriteit 2%
Op Windows 7 moest ik het volgende doen:
snelle manier
- Installeer JDK http://www.oracle.com/technetwork/java/javase /downloads
- blader in Windows naar “C:\Program Files\Java\jdk1.8.0_91\bin” (of waar de nieuwste versie van JDK is geïnstalleerd), houd shift ingedrukt en klik met de rechtermuisknop op een leeg gebied in het venster en doe “hier het opdrachtvenster openen” en dit geeft je een opdrachtregel en toegang tot alle BIN-tools. “javac” is niet standaard in de PATH-omgevingsvariabele van het Windows-systeem.
- Volg de opmerkingen hierboven over het compileren van het bestand (“javac MyFile.java” en vervolgens “java MyFile”) https://stackoverflow .com/a/33149828/194872
lange weg
- Installeer JDK http://www.oracle.com/technetwork /java/javase/downloads/index.html
- Bewerkt na de installatie de Windows PATH-omgevingsvariabele en voegt het volgende toe aan het pad C:\ProgramData\Oracle\Java\javapath. In deze map bevinden zich symbolische koppelingen naar een handvol uitvoerbare Java-bestanden maar “javac” is er NIET een van, dus als u “javac” probeert uit te voeren vanaf de Windows-opdrachtregel, geeft het een foutmelding.
- Ik heb het pad bewerkt: Configuratiescherm -> Systeem -> Geavanceerd tabblad -> “Omgevingsvariabelen…” knop -> scroll naar beneden naar “Pad”, markeer en bewerk -> “C:\ProgramData\Oracle\Java\javapath” vervangen door een direct pad naar de java BIN-map “C:\Program Files\Java\jdk1.8.0_91\bin”.
-
Dit gaat waarschijnlijk kapot als je je JDK-installatie upgradet, maar je hebt nu toegang tot alle opdrachtregelprogramma’s.
-
Volg de opmerkingen hierboven over het compileren van het bestand (“javac MyFile.java” en vervolgens “java MyFile”) https: //stackoverflow.com/a/33149828/194872
Antwoord 10
STAP 1: OPEN EERST DE COMMANDOPROMPT WAAR UW BESTAND ZICH BEVINDT. (klik met de rechtermuisknop terwijl u op shift drukt)
STAP 2: GEBRUIK DAARNA DE VOLGENDE COMMANDO’S OM UIT TE VOEREN.
(laten we zeggen dat het bestand en de klassenaam die moeten worden uitgevoerd de naam Student.java heeft) Het voorbeeldprogramma bevindt zich op de achtergrond van de afbeelding.
javac Student.java
java Student
Antwoord 11
Nu (met JDK 9 en hoger), kun je Java gebruiken om dat uit te voeren.
Om “Hello.java” met daarin de main uit te voeren, kan men het volgende gebruiken:
java Hallo.java
Je hoeft niet meer apart te compileren met javac.
Antwoord 12
Vanaf Java 9 bevat de JDK jshell
, een Java REPL.
Ervan uitgaande dat de JDK 9+ bin
-directory correct is toegevoegd aan uw pad, kunt u eenvoudig:
- Voer
jshell File.java
uit —File.java
is natuurlijk je bestand. - Er wordt een prompt geopend, waarmee u de methode
main
kunt aanroepen:jshell> File.main(null)
. - Om de prompt te sluiten en de JVM-sessie te beëindigen, gebruikt u
/exit
Volledige documentatie voor JShell vindt u hier.