编写一个启动java程序的批处理文件

时间:2015-03-01 11:59:25

标签: java eclipse batch-file batch-processing

所以我有一个包含多个java文件的java项目。

我知道使用批处理文件启动java应用程序几乎是直截了当的。但这是一个非常简单的java程序,只有一个类。

但是我想知道是否可以在通常使用eclipse创建的项目规模中执行此操作。一个包含多个包,类和多个java文件的大型项目。

我的尝试是写一个脚本并在主类上应用如下

set path = C:\Program Files\Java\jdk1.7.0_25\bin

javac -classpath twitter/twitter4j-stream-3.0.5.jar;twitter4j-core-3.0.5.jar" sourcepath="lib/twitter4j-core-4.0.1.jar;lib/twitter4j-core-4.0.1.jar;lib/twitter4j-stream-4.0.1.jar;svm_light_lib Program.java

java Program

然而,当我启动.bat文件时,它会自动关闭。 任何想法?

提前致谢

2 个答案:

答案 0 :(得分:1)

  • 首先,永远不要覆盖environment variable path,甚至不要覆盖There exists a particular path command set "path=%path%;%mypath%" 暂时。请改为添加您的文件夹:set "path=%mypath%;%path%"path=%path%;%mypath%
  • environment variables但我不确定正确的语法:= path %path%;%mypath%分配或"%mypath%\javac"没有它。)
  • 如果您知道,请使用程序的完整路径,例如: -classpath
  • 为了更好的可读性,-sourcepathmycpth选项的值分别存储在Displays the message mysrcp"中。请注意并使用正确的=引号,set周围没有间距,以避免所有pause命令中的任何前导和尾随空格。
  • javac查看所有Press any key to continue . . .输出。 {{3}} set "mypath=C:\Program Files\Java\jdk1.7.0_25\bin" set "path=%path%;%mypath%" set "mycpth=twitter/twitter4j-stream-3.0.5.jar;twitter4j-core-3.0.5.jar" set "mysrcp=lib/twitter4j-core-4.0.1.jar;lib/twitter4j-core-4.0.1.jar;lib/twitter4j-stream-4.0.1.jar;svm_light_lib" "%mypath%\javac" -classpath "%mycpth%" -sourcepath "%mysrcp%" Program.java pause java Program

下一个代码应该是(语法)无错误的。但是,成功还取决于(等等) classpath sourcepath 条目的可见性......

{{1}}

答案 1 :(得分:0)

  

但是我想知道是否可以在通常使用eclipse创建的项目规模中执行此操作。一个包含多个包,类和多个java文件的大型项目。

当然有可能!

在这种情况下,我怀疑问题是你java命令没有“-cp”参数。 java命令可能失败,因为它无法在运行时找到twitter类。

请记住包含“。”在类路径...或者java将找不到您刚刚编译的文件。

@JB Nizet的建议对于找出实际发生的情况也是非常重要的建议。