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

问题描述:

我试图从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只写一次,在任何地方运行)?

+21

'javac的CopyFile.java'然后'Java的CopyFile' – alfasin 2013-04-22 00:29:21

+0

我在命令行是现在,我需要在同一文件夹中保存我的txt文件的程序对它们进行调用? – 2013-04-22 00:30:56

+0

'CopyFile'包含什么包 – MadProgrammer 2013-04-22 00:32:28

来源:javaindos.

Let's say your file is in C:\mywork\

Run Command Prompt

C:\> cd \mywork 

This makes C:\mywork the current directory.

C:\mywork> dir 

This displays the directory contents. You should see filenamehere.java among the files.

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

This tells the system where to find JDK programs.

C:\mywork> javac filenamehere.java 

This runs javac.exe, the compiler. You should see nothing but the next system prompt...

C:\mywork> dir 

javac has created the filenamehere.class file. You should see filenamehere.java and filenamehere.class among the files.

C:\mywork> java filenamehere 

This runs the Java interpreter. You should then see your program output.

If the system cannot find javac, check the set path command. If javac runs but you get errors, check your Java text. If the program compiles but you get an exception, check the spelling and capitalization in the file name and the class name and the java HelloWorld command. Java is case-sensitive!

+8

quote your sources – 2013-04-22 00:31:22

+16

im问题是当我尝试运行编译器时出现错误“无法找到或加载主类CopyFile – 2013-04-22 00:42:36

+1

如果您将包含CopyFile.class的文件夹设置为当前目录,只需尝试“java -cp。 CopyFile“否则”java -cp FULLPATH CopyFile“ – 2013-04-22 00:48:45

可以编译在命令行使用javac任何Java源;例如,javac CopyFile.java。 运行:java CopyFile。 您还可以,只要他们在同一个目录下编译使用javac *的.java所有的java文件

如果您有任何关于产生“找不到或无法加载主类”的问题,你可能没有 在你的道路上。看看这个问题: Could not find or load main class

对于请编译Java文件生成类

的javac filename.java

对于文件的执行

的java文件名

+0

请注意,您的“文件名”实际上是一个类的名称.java.exe将搜索每个* .jar文件中的这个名称的类。 – Doomjunky 2017-08-24 20:37:12

要完成答案:

  1. Java文件

    TheJavaFile.java 
    
  2. 编译Java文件到* .class文件

    javac TheJavaFile.java 
    
    • 这将创建一个TheJavaFile.class文件
  3. 执行的Java F

      1. 使用外部清单文件 - ILE

        java TheJavaFile 
        
      2. 可执行文件*.jar

        • 你来到这里两个选项的创建科瑞清单文件说 - MANIFEST。MF

        • 清单文件是什么,但通过入口点的主类

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

      3. 可执行一个明确的条目:

        • jar -cvfe TheJavaFile.jar <MainClass> TheJavaFile.class
  4. 要运行jar文件

    java -jar TheJavaFile.jar 
    
+3

你能否认为e显示MANIFEST.mf的内容,因为当我尝试“通过入口点执行”它说主要类无法找到 – 2015-11-17 18:06:47

+0

@Piny Cheyni如果你的类被称为MainClass,那么你的清单文件将有一个条目Main-Class:MainClass – 2324 2015-11-25 03:26:27

+0

@PiniCheyni,这里介绍两种创建可执行文件的方法。 https://docs.oracle.com/javase/tutorial/deployment/jar/appman.html – 2016-09-27 05:39:20

这是很容易。如果你已经将你的文件保存为A.text,你应该首先将它保存为A.java。现在它是一个Java文件。

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

然后你可以使用命令

javac A.java

编译文件,然后使用

java A

运行它,所以这是你如何编译并在cmd中运行Java程序。 您也可以通过这些深入Java课程的material。很多你需要在Java中理解的东西都覆盖了初学者。

在Windows 7上我不得不做以下几点:

快速的方法

  1. 安装JDK http://www.oracle.com/technetwork/java/javase/downloads
  2. 在Windows
  3. ,浏览到“C:\ Program Files文件\的Java \ jdk1。 8.0_91 \ bin“(或者安装最新版本的JDK),按住Shift并右键单击窗口内的空白区域,然后执行”在此处打开命令窗口“,这将为您提供命令行并访问所有BIN工具。 “javac”不是默认在windows系统的PATH环境变量中。
  4. 按照上述评论有关如何编译文件( “javac的MyFile.java”,然后 “的java MyFile的”)https://stackoverflow.com/a/33149828/194872

很长的路要走

  1. 安装JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. 安装后,编辑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存在于com.hello.programs中,那么你需要使用包名来运行它。像

编译做通常的方式

命令:C:\ SimpleJavaProject的\ src \ COM \你好\程序>的javac ABC.java

但是运行你需要给包名称和那么你的java类名。

命令:C:\ SimpleJavaProject \ SRC>的java com.hello.programs.ABC

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

javac CopyFile.java 
java -cp . CopyFile 

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

+1

mycomputer:bin user $ java -cp。 Main.class 错误:无法找到或加载主类Main.class – Chrips 2017-08-13 07:14:02

enter image description here 第1步:首先打开命令,提示您的文件位于何处。 (按shift键点击右键)
第2步:然后使用以下命令执行。 (可以说要执行的文件和类名称被命名为Student.java)示例程序位于图片背景中。

 javac Student.java 
    java Student 

enter image description here

无需使用命令行来编辑路径。我有同样的问题,我设置了这个youtube视频后面的路径。 https://www.youtube.com/watch?v=vhBNV8no4CI