我正在尝试从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只写一次,可以在任何地方运行)?
假设你的文件位于C:\ mywork \
C:\ mywork \
运行命令提示符
C:\> cd \mywork
这使C:\ mywork成为当前目录。
C:\mywork> dir
这将显示目录内容。你应该在文件中看到filenamehere.java。
filenamehere.java
C:\mywork> set path=%path%;C:\Program Files\Java\jdk1.5.0_09\bin
这告诉系统在哪里可以找到JDK程序。
C:\mywork> javac filenamehere.java
这将运行编译器javac.exe。除了下一个系统提示,你什么都看不到…
javac.exe
javac已创建filenamename.class文件。你应该在文件中看到filenamehere.java和filenamehere.class。
filenamename.class
filenamehere.class
C:\mywork> java filenamehere
这将运行Java解释器。然后,你应该看到程序输出。
如果系统找不到javac,请检查set path命令。如果javac运行但出现错误,请检查Java文本。如果程序可以编译但出现异常,请检查文件名和类名以及Java HelloWorld命令的拼写和大小写。Java区分大小写!
要完成答案:
TheJavaFile.java
javac TheJavaFile.java
这将创建一个TheJavaFile.class文件
Java文件的执行
java TheJavaFile
创建可执行*.jar文件
你在这里有两个选择
使用外部清单文件:
创建清单文件说-MANIFEST.mf
MANIFEST文件不过是Main Class的显式条目
jar -cvfm TheJavaFile.jar MANIFEST.mf TheJavaFile.class
可通过入口点执行:
jar -cvfe TheJavaFile.jar <MainClass> TheJavaFile.class
运行Jar文件
java -jar TheJavaFile.jar