我在File.java
:
public static void main(String args[]) throws Exception_Exception {
URL wsdlURL = CallSService.WSDL_LOCATION;
if (args.length > 0) {
File wsdlFile = new File(args[0]);
try {
if (wsdlFile.exists()) {
wsdlURL = wsdlFile.toURI().toURL();
} else {
wsdlURL = new URL(args[0]);
}
} catch (MalformedURLException e) {
e.printStackTrace();
我希望将其转移到JSP文件中,所以我喜欢这样:
List<String> Search(String keyS){
if(keyS!=null){
QName SERVICE_NAME = new QName("http://ts.search.com/", "callSService");
String arg=??????????????;
URL wsdlURL = CallSService.WSDL_LOCATION;
File wsdlFile = new File(arg);
try {
if (wsdlFile.exists()) {
wsdlURL = wsdlFile.toURI().toURL();
} else {
wsdlURL = new URL(arg);
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
我想将args[0]
替换为arg
。 (String args[])
是什么意思?以及如何更换它?
答案 0 :(得分:8)
String args[]
是从命令行传入的字符串数组。
因此,如果您使用java MyApp arg1 arg2
然后args[]
将包含=&gt; ["arg1", "arg2"]
Java会自动拆分用空格分隔的参数,这就是它知道你传入多少个参数的方式。
答案 1 :(得分:4)
不要在JSP中执行此操作:(
不要将您的功能放在main
中,这令人困惑:public static void main
通常是程序的入口点,而不是通用方法。您可以使用作为一个,但IMO会产生误导。
相反,创建一个可以使用所需参数调用的实例方法。它可能是一个static
方法,但这种方法存在一些不灵活性,使得测试更加困难。在JSP中嵌入代码也会增加测试难度。
除非您提供绝对路径,否则您需要使用ServletContext.getRealPath()
来获取相对于网络应用的文件。如果文件在应用程序中“嵌入”(在类路径上),您将需要使用resourceAsStream
变体之一。