如何将java参数编码到主/构造函数中?
我有一个可执行文件 这两个构造器如下所示:如何将java参数编码到主/构造函数中?,java,executable,Java,Executable,我有一个可执行文件 这两个构造器如下所示: public A() { //code } A foo = new A(); rt.exec("java -jar pathToA.jar"); 及 主要内容如下所示: public A() { //code } A foo = new A(); rt.exec("java -jar pathToA.jar"); 当然,它只执行第一个构造函数 在B.jar中,我这样调用它: public A() { //code } A foo = ne
public A()
{
//code
}
A foo = new A();
rt.exec("java -jar pathToA.jar");
及
主要内容如下所示:
public A()
{
//code
}
A foo = new A();
rt.exec("java -jar pathToA.jar");
当然,它只执行第一个构造函数
在B.jar中,我这样调用它:
public A()
{
//code
}
A foo = new A();
rt.exec("java -jar pathToA.jar");
在另一个名为“B.jar”的可执行jar中,我希望能够使用任一构造函数执行A.jar。我应该如何实现这一点?我应该去掉A.jar中的
main
方法吗?如果您想传递所有参数,我建议将构造函数保留为:
A(String []args) {
}
并致电:
public static void main(String []args) {
new A(args);
}
在jar的main函数中。您还可以链接这两个构造函数。请参见构造函数链接: (我认为这比String[]args要好,因为您可以很容易地混淆args的顺序,而且这样您只能处理字符串。(要处理不同的类型,您可以使用Object[]args,但由于它甚至不具有类型安全性,所以更难维护。)并且您希望控制参数的数量。) 请注意,通常有人希望以另一种方式链接,因此参数化构造函数将调用参数较少的构造函数
public A()
{
// more code here
}
public A(String foo)
{
this.setFoo(foo);
// more code here
}
public A(String foo, int bar)
{
this(foo);
this.setBar(bar);
}
public A(String foo, int bar, float extra)
{
this(foo, bar);
this.setExtra(extra);
}
在A.jar中有另一个主类,它使用
afoo=newa(args[0])在public static void main
中编写>并在启动命令时执行它。您应该将A.jar
中的类作为Java代码直接调用,而不是启动第二个进程。@LuiggiMendoza啊!这更有意义。谢谢。不这样做的唯一原因是,如果您是一个启动进程,并且您不希望子进程被杀死等等:-)那么我是否应该摆脱我的a(String foo)
?这不是一个维护性的好主意,但可以很好地用于快速概念验证代码(尽管事情总是这样开始的)。