JavaWebStart应用程序可以从本地系统读取文件,但不能写入

JavaWebStart应用程序可以从本地系统读取文件,但不能写入,java,file,local,jnlp,java-web-start,Java,File,Local,Jnlp,Java Web Start,请询问您是否需要更多信息。我有安全和所有权限标签 在我的jnlp中,当我离线运行java应用程序时,它可以正常工作 File T = new File(System.getProperty("user.home") + File.separator + ".myapp/");<br /> if(!T.exists()) T.mkdirs(); File[] temp=new File[2]; temp[0] = new File(System.getProperty("us

请询问您是否需要更多信息。我有安全和所有权限标签 在我的jnlp中,当我离线运行java应用程序时,它可以正常工作

File T = new File(System.getProperty("user.home") + File.separator + ".myapp/");<br />
if(!T.exists())
    T.mkdirs();
File[] temp=new File[2];

temp[0] = new File(System.getProperty("user.home") + File.separator +
                   ".myapp"+File.separator+"temp1.txt");
temp[1] = new File(System.getProperty("user.home") + File.separator +
                   ".myapp"+File.separator+"temp2.txt");

writer=new BufferedWriter(new FileWriter(temp[x]));
writer.write(finalData);
writer.close();
File T=新文件(System.getProperty(“user.home”)+File.separator+“.myapp/”
如果(!T.exists()) T.mkdirs(); 文件[]临时=新文件[2]; temp[0]=新文件(System.getProperty(“user.home”)+File.separator+ “.myapp”+File.separator+“temp1.txt”); temp[1]=新文件(System.getProperty(“user.home”)+File.separator+ “.myapp”+File.separator+“temp2.txt”); writer=newbufferedwriter(newfilewriter(temp[x])); writer.write(最终数据); writer.close();
我使用以下方法写入要在用户系统的目录中创建的文件。在程序中,我也从同一文件夹中读取数据,当我将测试数据放在该文件夹中时,它会正常工作。当我删除temp1.txt和temp2.txt文件时,它不会读取任何数据。没有出现任何错误消息或任何东西

重申一下,在java web start中运行时,会弹出窗口,程序会正确运行,没有错误消息,但不会将文件正确写入用户系统。同时,当在.txt文件中提供测试数据时,它会正确地读取数据

File T = new File(System.getProperty("user.home") + File.separator + ".myapp/");<br />
if(!T.exists())
    T.mkdirs();
File[] temp=new File[2];

temp[0] = new File(System.getProperty("user.home") + File.separator +
                   ".myapp"+File.separator+"temp1.txt");
temp[1] = new File(System.getProperty("user.home") + File.separator +
                   ".myapp"+File.separator+"temp2.txt");

writer=new BufferedWriter(new FileWriter(temp[x]));
writer.write(finalData);
writer.close();
编辑:如果可能的话,有没有不使用一些javaw.jnlp.*方法的解决方案?该程序实际上必须有一个包含.txt文件的文件夹才能读取


edit2:我所有的jar都已签名

在使用该文件之前,您可以尝试创建该文件吗

temp[1]。createNewFile()

这将仅在文件不存在时创建该文件。您可以使用return boolean标志来确定文件是否已经存在。如果安全管理器拒绝创建请求,此方法还将引发IOException

编辑:

根据
java.io.FileWriter
,文件创建取决于底层平台。因为如果文件存在,您可以读取该文件,并且只在JNLP应用程序中创建新文件时遇到问题。我建议使用
createNewFile
创建一个新文件,而不是依赖FileWriter来创建文件

java.io.FileWriter
javadoc:

文件是否可用或是否可以创建取决于 底层平台


对不起,伙计们,我是个白痴。我的jnlp文件指向本地系统中java程序的不同版本,基本上我是个白痴。回家后,我从家用电脑上测试了网站,发现了错误


非常感谢你的帮助

您的策略文件是什么样子的?策略文件是什么?我不知道是否有oneJNLP可以使用策略文件或概述应用程序在主机上可以执行的操作的
块。退房或获取一些信息。等等……但是因为我已经有了一个安全块,它不会查看策略文件吗?是的。