java 命令行 传递参数
在用命令行运行时,我想输入javasample<input.txt(sample是java程序)然后读取input.txt的内容。我试过了很多,直接用javasample...
在用命令行运行时,我想输入 java sample < input.txt (sample是java程序)
然后读取input.txt的内容。我试过了很多,直接用 java sample input.txt 的话运行没有问题,但是加上<的话就不行了,我用substring把前面的<去掉,就出现了错误
(作业要求,一定要用<;还有args〔0〕和〔1〕我都试过了,不行。四楼说得有道理,但是我一定要用<) 展开
然后读取input.txt的内容。我试过了很多,直接用 java sample input.txt 的话运行没有问题,但是加上<的话就不行了,我用substring把前面的<去掉,就出现了错误
(作业要求,一定要用<;还有args〔0〕和〔1〕我都试过了,不行。四楼说得有道理,但是我一定要用<) 展开
5个回答
展开全部
不要在Java中处理“<”(重定向)符号,那是留给操作系统来处理的。
要想将将输入从定向文件传递给Java程序,可采用如下办法。
(1)首先制作批文件(Windows下为.bat文件,Linux/UNIX下为.sh文件)。给你作个例子(以Windows为例,制作一个名称为start.bat的文件):
@set/p A= >nul
@set/p B= >nul
@set/p C= >nul
@set/p D= >nul
@java 您的java启动类名 %A% %B% %C% %D%
@set/p A= <nul
@set/p B= <nul
@set/p C= <nul
@set/p D= <nul
这里只有四个参数,您可以添加更多的参数。
之后编写输入重定向文件(in.txt),内容范例如下:
para1Value
para2Value
para3Value
...
在执行的时候,使用格式如下:
start.bat < in.txt
这时,您的Java启动类.main才能接收到从定向文件里的参数。
建议在批文件中可以多设一些参数,即使输入重定向文件内提供的参数值数量不足也没有关系,操作系统不会传递没无值参数。
要想将将输入从定向文件传递给Java程序,可采用如下办法。
(1)首先制作批文件(Windows下为.bat文件,Linux/UNIX下为.sh文件)。给你作个例子(以Windows为例,制作一个名称为start.bat的文件):
@set/p A= >nul
@set/p B= >nul
@set/p C= >nul
@set/p D= >nul
@java 您的java启动类名 %A% %B% %C% %D%
@set/p A= <nul
@set/p B= <nul
@set/p C= <nul
@set/p D= <nul
这里只有四个参数,您可以添加更多的参数。
之后编写输入重定向文件(in.txt),内容范例如下:
para1Value
para2Value
para3Value
...
在执行的时候,使用格式如下:
start.bat < in.txt
这时,您的Java启动类.main才能接收到从定向文件里的参数。
建议在批文件中可以多设一些参数,即使输入重定向文件内提供的参数值数量不足也没有关系,操作系统不会传递没无值参数。
展开全部
//
需要加双引号啊,大哥
如:java T "<" "abc"
一个参数的话为 java T "<abc"
--------------------
< input.txt
注意到了么,<和input之间有个空格,这相当于提供了两个参数
args[0]和args[1]
需要加双引号啊,大哥
如:java T "<" "abc"
一个参数的话为 java T "<abc"
--------------------
< input.txt
注意到了么,<和input之间有个空格,这相当于提供了两个参数
args[0]和args[1]
参考资料: 还有其他问题的话,给我发百度消息
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java空格sample空格<空格input.txt
则args[0]等于"<"
则args[1]等于"input.txt"
然后判断args[0]是否=="<" 如果是则读入 如果是">"则输出
则args[0]等于"<"
则args[1]等于"input.txt"
然后判断args[0]是否=="<" 如果是则读入 如果是">"则输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Test{
public static void main(String[] arg){
for(int i=0;i<arg.length;i++){
System.out.println(arg[i]);
}
}
}
然后用java Test.java进行编译生成.class文件
然后再用javac Test 执行,这样是不带参数的
带参数的:
javac Test hello "my name" apple
这样你就把hello给了arg数组的第一个。。依次下去,单词间有空格加双引号,就像"my name",每个元素间用空格隔开,不知道你会没有
public static void main(String[] arg){
for(int i=0;i<arg.length;i++){
System.out.println(arg[i]);
}
}
}
然后用java Test.java进行编译生成.class文件
然后再用javac Test 执行,这样是不带参数的
带参数的:
javac Test hello "my name" apple
这样你就把hello给了arg数组的第一个。。依次下去,单词间有空格加双引号,就像"my name",每个元素间用空格隔开,不知道你会没有
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在命令提示符中(cmd.exe)输入,java ClassName parameter
这就是在编译时象ClassName文件传递参数的方式,parameter为参数实体,可以用空格来传递多个参数,该参数会传递到public static void main(String[] args)中的args数组中
这就是在编译时象ClassName文件传递参数的方式,parameter为参数实体,可以用空格来传递多个参数,该参数会传递到public static void main(String[] args)中的args数组中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询