我正在使用command line
中的eclipse
java程序。我用System.out.println
写入控制台。当我用eclipse运行它时,它工作,但是当我将它编译为jar文件,并通过cmd运行它时,它没有写任何东西到屏幕上。我查找的所有内容都说使用System.out.println
写入命令行。我该怎么办?这是我的代码:
package cpac;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class packfile {
static double vernum = 1.1;
public static void saveUrl(final String in2, final String urlString)
throws MalformedURLException, IOException {
BufferedInputStream in = null;
FileOutputStream fout = null;
try {
in = new BufferedInputStream(new URL(urlString).openStream());
fout = new FileOutputStream(in2);
final byte data[] = new byte[1024];
int count;
while ((count = in.read(data, 0, 1024)) != -1) {
fout.write(data, 0, count);
}
} finally {
if (in != null) {
in.close();
}
if (fout != null) {
fout.close();
}
}
}
public static void main (String[] args) throws IOException {
int where = 0;
System.out.println("CPac Version " + vernum);
for (String s: args) {
if (s.equals("update")) {
java.io.File file = new java.io.File("cpac.jar");
file.delete();
saveUrl("cpac.jar", "http://example.com/package/cpac.jar");
return;
}
if (s.equals("install")) {
System.out.println("install");
URL oracle = new URL("http://example.com/package/" + args[where + 1] +"/package.pac");
BufferedReader in = new BufferedReader(
new InputStreamReader(oracle.openStream()));
String inputLine;
String data = null;
while ((inputLine = in.readLine()) != null){
data = inputLine;
}
in.close();
saveUrl(data, "http://example.com/package/" + args[where + 1] +"/" + data);
System.out.println("Done!");
}
where = where + 1;
}
}
}
修改 我只是通过在cmd中输入他们的名字来阅读一些说你无法运行jar文件的内容。有没有办法不必在不需要额外文件的情况下输入长命令?
答案 0 :(得分:2)
查看您在命令行中输入的内容会有所帮助。希望它看起来像这样。
java -cp <filename.jar> cpac.packfile
答案 1 :(得分:1)
“在Eclipse中工作” - IDE让你无法理解事情是如何运作的。
您不运行JAR文件;运行JRE并告诉它使用JAR文件来查找您在META-INF / manifest.mf中指定的主类。
控制台中没有消息吗?你没有得到反馈吗?如果您create the executable JAR properly,您的主要课程将会运行。如果您的主类运行,它将在您打印到控制台时写入命令shell。