gpt4 book ai didi

java - 如何调用接受命令行参数的类?

转载 作者:行者123 更新时间:2023-12-01 15:20:57 26 4
gpt4 key购买 nike

我不是一个好的程序员。在学校里,我学习了 MATLAB。所以我不知道我在做什么。

我正在使用 ThingMagic M6 阅读器。他们有自己的API。我想创建自己的应用程序来读取该程序。我想使用他们提供的示例程序(因为我的程序似乎不起作用)。但是,提供的程序仅接受命令行参数。我如何更改它以便可以在代码中向它传递参数。

这是提供的代码:(在命令行我输入 tmr://10.0.0.101)

    /**
* Sample program that reads tags for a fixed period of time (500ms)
* and prints the tags found.
*/

// Import the API
package samples;
import com.thingmagic.*;

public class read
{
static void usage()
{
System.out.printf("Usage: demo reader-uri <command> [args]\n" +
" (URI: 'tmr:///COM1' or 'tmr://astra-2100d3/' " +
"or 'tmr:///dev/ttyS0')\n\n" +
"Available commands:\n");
System.exit(1);
}

public static void setTrace(Reader r, String args[])
{
if (args[0].toLowerCase().equals("on"))
{
r.addTransportListener(r.simpleTransportListener);
}
}


static class TagReadListener implements ReadListener
{
public void tagRead(Reader r, TagReadData t) {
System.out.println("Tag Read " + t);
}
}

public static void main(String argv[])
{

System.out.println(argv.getClass().toString());
// Program setup
TagFilter target;

Reader r;
int nextarg;
boolean trace;

r = null;
target = null;
trace = false;

nextarg = 0;

if (argv.length < 1)
usage();

if (argv[nextarg].equals("-v"))
{
trace = true;
nextarg++;
System.out.println("Trace");
}

// Create Reader object, connecting to physical device
try
{

TagReadData[] tagReads;
r = Reader.create(argv[nextarg]);
if (trace)
{
setTrace(r, new String[] {"on"});
}
r.connect();
if (Reader.Region.UNSPEC == (Reader.Region)r.paramGet("/reader/region/id"))
{
r.paramSet("/reader/region/id", Reader.Region.NA);
}
r.addReadListener(new TagReadListener() );
// Read tags
tagReads = r.read(500);
// Print tag reads
for (TagReadData tr : tagReads)
System.out.println(tr.toString());

// Shut down reader
r.destroy();
}
catch (ReaderException re)
{
System.out.println("Reader Exception : " + re.getMessage());
}
catch (Exception re)
{
System.out.println("Exception : " + re.getMessage());
}
}
}

这是我尝试使用它:(arg 来自 JTextField)

String[] argv = new String[1];
argv[0] = arg;
readOnceApp(argv);

我感觉这个问题有一个非常简单的答案,但我就是想不出来。我在网上查了几天,也看了书,还是没搞明白。任何帮助表示赞赏。谢谢。

编辑:readOnceApp 是我编写的一种方法。它基本上只是所提供代码的主要方法。如果有帮助的话我可以把它包括在内。我只是不想发布太多代码。

最佳答案

如果你想从另一个类调用一个类的“main”方法,请这样做:

String [] args = new String [1];
args[0]= "some param";
readOnceApp.main(args);

这是假设“readOnceApp”是您的类的名称。 (顺便说一句,您应该遵循使用大写类名的约定,例如 ReadOnceApp)。

希望这有帮助。

关于java - 如何调用接受命令行参数的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10938730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com