我想使用以下命令运行程序
java Main -host arg1 arg2
然而,由于我在单独的包装中制作了这个项目,所以我遇到了一些问题。所以我得到一个jar文件,无法从上面的关键字运行main。我必须从命令行调用jar文件。
java -jar Main.jar arg1 arg2
但是我不希望这样,因为它违反了我的规范。
你能帮我吗?
SPECIFICATION
只需要纯文本应用程序。它必须联网并作为主机(服务器)或a运行 客户端从命令行使用命令:
java BankApp -host PORT
java BankApp -client MACHINE PORT
分别作为主机或客户端启动。例如,如果您知道主机在端口8888上运行aloha 你会联系:
java BankApp -client aloha 8888
我需要做的就是如下。
java -jar C:\Users\UniversityofBristol\Desktop\BankApp\BankApp\dist BankApp.jar arg1 arg2
公共类BankApp {
public static void main(String[] args) throws IOException, ClassNotFoundException {
String current = new java.io.File(".").getCanonicalPath();
current = "java -jar " + current + "\\dist";
current = "\"" + current + "\"";
current = current + " BankApp.jar";
System.out.println("Current dir:" + current);
// Run a java app in a separate system process
Process proc = Runtime.getRuntime().exec(current);
// Then retreive the process output
InputStream in = proc.getInputStream();
InputStream err = proc.getErrorStream();
}
}
答案 0 :(得分:1)
如果您想在单独的流程中运行.jar,请参阅this answer。
否则我认为您可以将它添加到您的项目中(在您正在使用的任何IDE中查看项目属性)并将其用作任何其他库。
答案 1 :(得分:0)
把你的jar放在classpath上。您可以通过说:
来打破规范java -cp bankapp.jar BankApp arg1 arg2
或设置$ CLASSPATH环境变量(这很丑陋,我从来没有真正在脚本之外执行它但它有效):
export CLASSPATH=path/to/your/jar
java BankApp arg1 arg2
<强>扰流强>