从PHP生成的JNLP失败

从PHP生成的JNLP失败,php,java-web-start,Php,Java Web Start,我有一个很奇怪的问题。我有一个JNLP文件,当手动编辑属性时,它可以正常工作: <property name="javaws.username" value="dummy" /> 但是,当从php生成具有如下实际值的相同属性时: <property name="javaws.username" value="fb1331463499" /> 它在运行时显示为空。我在Xcode中检查了jnlp文件以查找控制字符,但Xcode没有显示任何字符 非常感谢您的帮助。

我有一个很奇怪的问题。我有一个JNLP文件,当手动编辑属性时,它可以正常工作:

<property name="javaws.username" value="dummy" /> 

但是,当从php生成具有如下实际值的相同属性时:

<property name="javaws.username" value="fb1331463499" />

它在运行时显示为空。我在Xcode中检查了jnlp文件以查找控制字符,但Xcode没有显示任何字符


非常感谢您的帮助。

请转到heredoc格式,将不需要的ctrl-J移动到文件末尾

虽然不是一个很好的解决方案,但它很有效。

仍然有问题

我终于在JNLP中找到了这一行:

<jnlp spec="1.0+" codebase="http://fgdztgab.joyent.us/snowmen" href="snowman.jnlp">

Jnlp文件是一种奇怪的黑客行为。如果href参数可用,它们基本上会重新加载自己。这允许他们对jnlp文件使用自己的缓存和版本控制机制。不幸的是,这意味着它在没有get参数的情况下重新加载。我可能已经将get参数添加到href中了,但是由于它是可选的,所以我只是将它删除了

这解决了问题


故事的寓意:如果包含href,请注意href的作用。

href会导致从该URL加载jnlp文件(相对于代码库或完全限定),如果生成动态jnlp,该URL将取代动态信息。在这种情况下,您可以省略JNLP href以防止重新加载,但仅供参考-从JNLP标记参考页-:

注意,Java Web Start需要href在Web Start中列出您的应用程序 应用程序管理器


你试过手工编辑的真正价值吗?如果是,如果有效,试着在两个文件之间运行一个diff。是的,但我没有想到o diff,谢谢!啊哈!opendiff说在PHP生成的行的末尾有一个额外的字符。现在我需要弄清楚echo为什么要这么做,并让它停止…它是a^J。出于某种原因,echo插入了它,尽管我在php文档中找不到任何提到它的地方:(有人知道如何抑制它吗?)我要开始一个新的问题,特别是关于那个该死的^J