我不是一个好的程序员。在学校里,我学习了 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/