【发布时间】:2015-01-06 20:50:52
【问题描述】:
我正在使用 JCommander(版本 1.32)解析传递给 java 应用程序的命令行参数(我们称之为app)。我遇到的问题是我需要传递的参数之一以@ 开头,并且可以看出here 有@ 的特殊语法。因此,使用 app @arg 调用应用程序失败并显示
无法读取文件 arg:java.io.FileNotFoundException:arg(没有这样的文件或目录)。
通读这些信息,我尝试将我的参数放在一个文件中,但显然“@ 语法”是递归的,因此即使我将 @arg 放在一个文件中,我的程序也会失败并出现相同的错误。
有没有办法将一个以@ 开头的参数传递给使用 jcommander 的程序?有没有办法禁用@ 语法?
【问题讨论】:
-
据我从 1.35 的资料来看,这似乎是不可能的。
-
消息来源似乎表明它正在读取文件而不在其中应用
@语法。您确定您的文件中的@arg参数会出现同样的错误吗? -
@RealSkeptic 是的,对于我列出的版本(1.32)
-
这些是sources I'm looking at。也许您没有正确命名包含参数的文件?它应该正是
@之后的内容,并且应该在当前工作目录或绝对路径中。 -
我认为我应该正确地进行测试。我将文件命名为 test.arg 并在其中放置了一行
@arg。现在在运行app @test.arg之后,我得到了同样的错误Could not read file arg: java.io.FileNotFoundException: arg (No such file or directory).
标签: java jcommander