将复杂参数发送到java程序

时间:2010-05-28 19:02:17

标签: java

我需要为java程序提供二进制许可证文件。做这个的最好方式是什么?数据会一直在变化,所以我不想写一个文件然后每次都读回来。

数据来自PHP页面

4 个答案:

答案 0 :(得分:2)

  

我将使用php exec()命令   这就像你打字一样   在命令行上

在您的Java类中,您将拥有一个名为main的方法,如下所示:

public static void main(String[] args) {
    //If this is just a single binary string, args[0] will contain the license.
}

如果您将许可证作为第一个参数发送,args[0]将是您的传入许可证。

现在,说完之后,您可能希望在发送许可证之前对其进行base64编码。这将确保许可文件在传输时不受字符集的影响。

PHP为此目的具有函数base64_encode()

Java奇怪地没有内置的Base64解码(无论如何都不正式)。 Apache Commons Codec包括解码器。

同样,假设许可证是传递的第一件事:

import org.apache.commons.codec.binary.Base64;

public class GiveMeANameHere {

    public static void main(String[] args) {
        Base64 decoder = new Base64();
        byte[] license = decoder.decode(args[0]);

        // Do whatever you need to with the license.
        // Other strings passed in will appear as elements in args array
    }
}

并不是说Java代码需要像它的类路径一样传递给Apache Commons Codec jar,使用-cp path/to/commons-codec-1.4.jar或者将程序打包为jar文件。

答案 1 :(得分:1)

将许可证文件的URL保存在用户首选项(java.util.prefs)中。如果用户首选项是新的或URL和/或其内容不再有效,则提示用户输入新URL(并将其保存回首选项)。然后,您可以获取URL视图java.net.URL.openStream()的内容 - 对于文件或Web地址也可以正常工作。

答案 2 :(得分:0)

将路径移交给文件怎么样?
OK
你可以使用“interprocesscommunication”之类的东西 - 远程方法调用(RMI)
http://java.sun.com/products/jdk/rmi/
- 简单对象访问协议(SOAP)
http://www.soaprpc.com/software/
http://java.sun.com/xml/jaxm/
http://ws.apache.org/soap/features.html

答案 3 :(得分:0)

听起来您想直接通过HTTP阅读InputStream。如果您最终选择了文件上传路径,Commons FileUpload已为您完成了大量工作。