【问题标题】:javac and java commands through Windows batch files通过 Windows 批处理文件的 javac 和 java 命令
【发布时间】:2016-03-18 07:38:41
【问题描述】:

我通常通过命令行编译东西:

javac -classpath . Test.java

同样地,我运行它们:

java -classpath . Test

我现在正尝试省去每次通过批处理文件都输入这些内容的麻烦。我试图通过这里的另一个问题来做到这一点:

Creating a batch file, for simple javac and java command execution

我也尝试过自己的方法:

cmd.exe
@echo off
javac -classpath . Test.java

然而,仍然没有运气。我检查了我的 PATH 环境变量是否正确指向最新版本的 jdk,正如我所说,我可以直接通过命令行进行编译。运行批处理文件后,我只是得到没有错误的命令提示符;好像cmd.exe下什么都没有。谁能伸出援助之手,给我一些理智?

【问题讨论】:

  • 我已经做到了,会发生一个命令提示符出现但立即再次关闭。它也不编译任何东西。至于最后一行中的点,您的意思是 .在 -classpath 之后? javac 不会让我在没有它的情况下通过命令行编译。
  • 谢谢!考虑把它记下来作为答案,这样我就可以选择它。我有 cmd.exe 只是为了保持打开的命令提示符,但它似乎是罪魁祸首。我不知道 dot 是干什么用的,但是 javac 不会让我在没有它的情况下编译,所以我只是使用它。

标签: java batch-file javac


【解决方案1】:

当您编写cmd.exe 时,将启动一个新的命令提示符。你不想这样。

当您写@echo off 时,这意味着在此之后不会在屏幕上打印任何内容。这就是它的意思。这就是它的作用。这就是为什么看起来什么都没有发生的原因。

如果您遇到编译错误,屏幕上会显示一些内容,但您可能没有。

如果您希望命令提示符窗口保留而不是消失,我相信 Windows 中有一个选项可以配置它,至少在我上次使用 Windows 时是这样,回到过去。

【讨论】:

  • pause放在文件末尾。
  • 我完全打算关闭 @echo 以不打印 javac -classpath 命令。奇怪的是,我可以从命令行手动编译 Test.java,但它根本没有对批处理文件产生任何影响。我仍然不完全明白为什么会这样,但我想我真的不必这样做。
【解决方案2】:

这对我有用。我认为它可以满足您的需求。

这是我为 .bat 文件建议的代码:

cd C:\Users\John\JavaApps\folderThatContains.java //points terminal to folder

javac Main.java  //This compiles .java in said folder

cmd /K "java Main" //cmd /K prevents terminal from quitting after "java Main"      

【讨论】:

  • 注意:"java main" 必须在 'cmd /K' 后面加引号
猜你喜欢
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
相关资源
最近更新 更多