我不是一个优秀的程序员。在学校,我学习了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是我写的一种方法。它基本上只是提供的代码的主要方法。我可以包括它,如果它会有所帮助。我只是不想发布太多代码。
答案 0 :(得分:1)
如果要从另一个类调用类的“main”方法,请执行以下操作:
String [] args = new String [1];
args[0]= "some param";
readOnceApp.main(args);
这假设“readOnceApp”是您班级的名称。 (顺便说一句,你应该遵循使用大写类名的惯例,例如ReadOnceApp)。
希望这有帮助。