如何在Windows上从命令行运行Java程序?

我正在尝试从Windows中的命令行执行Java程序。这是我的代码:

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();
}
}
}

我不知道如何执行这个程序——有什么帮助吗?这在Windows上可行吗?为什么它与其他环境不同(我以为JVM是一次编写,随处运行)?

1483634 次浏览

来源:javaindos。

假设你的文件在C:\mywork\

运行命令提示符

C:\> cd \mywork

这使得C:\mywork成为当前目录。

C:\mywork> dir

显示目录内容。你应该看到

.java
C:\mywork> set path=%path%;C:\Program Files\Java\jdk1.5.0_09\bin

这告诉系统在哪里可以找到JDK程序。

C:\mywork> javac filenamehere.java

运行编译器javac.exe。你只会看到

.
C:\mywork> dir
javac已经创建了fileamehere .class文件。你应该看到 文件中的Filenamehere.java和filenamehere.class
C:\mywork> java filenamehere

运行Java解释器。然后您应该看到您的程序 输出。< / p >

如果系统找不到javac,请检查set path命令。如果javac 运行,但你得到错误,检查你的Java文本。如果程序 编译,但您会得到一个异常,检查拼写和 文件名、类名和Java HelloWorld命令。Java是区分大小写的!< / p >

你可以在命令行中使用javac编译任何java源代码;例如,javac CopyFile.java。 执行命令:java CopyFile。 你也可以使用javac *.java编译所有的java文件,只要它们在同一个目录

如果你有一个问题导致“无法找到或加载主类”,你可能没有 Jre在你的路径。看看这个问题: 无法找到或加载主类 < / p >

Complile一个Java文件来生成一个类:

javac filename.java

执行生成的类:

java filename

完整回答:

  1. Java文件

    TheJavaFile.java
    
  2. Compile the Java File to a *.class file

    javac TheJavaFile.java
    
    • 这将创建一个TheJavaFile.class文件
    • 李< / ul > < / >
    • Java文件的执行

      java TheJavaFile
      
    • Creation of an executable *.jar file

      • You've got two options here -

        1. With an external manifest file :

          • Create the manifest file say - MANIFEST.mf

          • The MANIFEST file is nothing but an explicit entry of the Main Class

          • jar -cvfm TheJavaFile.jar MANIFEST.mf TheJavaFile.class

        2. Executable by Entry Point:

          • jar -cvfe TheJavaFile.jar <MainClass> TheJavaFile.class
    • To run the Jar File

      java -jar TheJavaFile.jar
      

这很简单。如果你把文件保存为A.text,你应该做的第一件事就是保存为A.java。现在它是一个Java文件。

现在你需要打开cmd并在编译之前设置路径到你的A.java文件。你可以参考

然后可以使用命令编译文件

javac A.java

然后使用

java的一个

这就是在cmd中编译和运行java程序的方法。 你也可以通过这些材料,这是Java的深入课程。

.

.

.

在Windows 7上,我必须执行以下操作:

快速的方法

  1. 安装JDK http://www.oracle.com/technetwork/java/javase/downloads
  2. 在windows中,浏览到“C:\Program Files\Java\jdk1.8.0_91\bin”(或者任何安装了最新版本的JDK的地方),按住shift并右键单击窗口内的空白区域,然后执行“在这里打开命令窗口”,这将给你一个命令行,并访问所有的bin工具。windows系统PATH环境变量中默认没有“javac”。
  3. 按照上面关于如何编译文件("javac MyFile.java"然后是"java MyFile") https://stackoverflow.com/a/33149828/194872的注释

漫长的道路

  1. 安装JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. 安装完成后,in编辑Windows环境变量PATH,并将以下内容添加到路径C:\ProgramData\Oracle\Java\javapath。在这个文件夹中是指向一些java可执行文件但是“javac”不是其中之一的符号链接,因此当试图从Windows命令行运行“javac”时,它会抛出一个错误。
  3. 我编辑了路径:控制面板->系统->高级选项卡->“环境变量…”按钮->向下滚动到“路径”,突出显示并编辑->将“C:\ProgramData\Oracle\Java\javapath”替换为Java BIN文件夹的直接路径“C:\Program Files\Java\jdk1.8.0_91\ BIN”。
  4. 当您升级JDK安装时,这可能会中断,但现在您可以访问所有的命令行工具。

  5. 按照上面关于如何编译文件的评论("javac MyFile.java"然后"java MyFile") https://stackoverflow.com/a/33149828/194872 .java"

万一你的Java类在某个包里。假设名为ABC.java的Java类出现在com.hello.programs中,那么你需要用包名运行它。

按通常的方式编译:

C:\SimpleJavaProject\src\com\hello\programs > javac ABC.java

但是要运行它,你需要给出包名,然后是你的java类名:

C:\SimpleJavaProject\src > java com.hello.programs.ABC

假设文件名为“CopyFile.java”,执行以下操作:

javac CopyFile.java
java -cp . CopyFile

第一行将源代码编译为可执行的字节代码。第二行执行它,首先将当前目录添加到类路径(以防万一)。

enter image description here 第一步:首先打开文件所在的命令提示符。(右击,同时按shift)
步骤2:然后使用以下命令执行。 (假设要执行的文件和类名为Student.java)示例程序位于图片背景中

     javac Student.java
java Student

enter image description here

从Java 9开始,JDK包含jshell,一个Java REPL。

假设JDK 9+ bin目录被正确地添加到您的路径中,您将能够简单地:

  1. 运行jshell File.java - File.java当然是你的文件。
  2. 将打开一个提示符,允许您调用main方法:jshell> File.main(null)
  3. 要关闭提示符并结束JVM会话,请使用/exit

JShell的完整文档可以在在这里中找到。

现在(从JDK 9开始),你可以使用java来执行它。 为了执行包含main的"Hello.java",可以使用: java Hello.java < / p >

你不再需要单独使用javac进行编译。

自Java 11以来,java命令行工具已经能够直接运行单文件源代码。如。

java HelloWorld.java

这是对JEP 330: https://openjdk.java.net/jeps/330的增强

有关使用和限制的详细信息,请参阅Java实现的手册,例如Oracle提供的:https://docs.oracle.com/en/java/javase/11/tools/java.html

您实际上可以像运行shell或python脚本一样运行Java程序,而无需手动编译Java文件,如 中330

如果你创建了一个文件testing,并放入以下内容,你应该能够像命令testing一样运行它。你需要用chmod +x testing使它在Linux和Mac OSX中可执行。

    #!/usr/bin/env java --source 11
public class Test {
public static void main(String [] args) {
System.out.println("Hello world!");
System.exit(0);
}
}

在前面的例子中,你被允许使用文件扩展名.java

    $ chmod +x testing
$ ./testing
Hello world!
$

但是如果它被命名为Test.java而没有shebang & #!"像这样的前缀:

    public class Test {
public static void main(String [] args) {
System.out.println("Hello again!");
System.exit(0);
}
}

然后使用以下命令执行文件Test.java:

    $ java Test.java
Hello again!
$

因此,只要你在路径中有一个足够新的Java编译器,这就可以工作,检查java -version。更多信息在博客