Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将java参数编码到主/构造函数中?_Java_Executable - Fatal编程技术网

如何将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)
?这不是一个维护性的好主意,但可以很好地用于快速概念验证代码(尽管事情总是这样开始的)。