Java 从unix写入windows网络共享
下面的代码在windows下的eclipse中工作得很好:Java 从unix写入windows网络共享,java,networking,share,Java,Networking,Share,下面的代码在windows下的eclipse中工作得很好: public static void main(String[] args) { try { String filePath = "\\\\myserver\\dir"; String fileName = "myFile.txt"; FileWriter myFileWriter = new FileWriter(filePath + File.separator +
public static void main(String[] args)
{
try
{
String filePath = "\\\\myserver\\dir";
String fileName = "myFile.txt";
FileWriter myFileWriter = new FileWriter(filePath + File.separator + fileName);
BufferedWriter myBufferedWriter = new BufferedWriter(myFileWriter);
myBufferedWriter.write("test");
myBufferedWriter.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
现在,我想从同一网络中的unix计算机上运行此代码。程序运行,但不写入我的文件或引发异常。有IDE吗
干杯,因为在Unix/Linux中这不是正确的路径
String filePath = "\\\\myserver\\dir";
我建议检查这样的路径是否存在,99%的可能性是您没有创建它们的权限。差不多吧
字符串filePath=“/usr/xx/”
正在创建文件夹:
File temp = new File("temp");
boolean test = temp.mkDir();
如果目标unix计算机安装了Samba,您可能希望尝试以下库: 不过,您需要用户名和密码
try {
String filePath = "myserver/dir";
String fileName = "myFile.txt";
String user = "username";
String password = "password";
// URL: smb://user:passwd@host/share/filname
SmbFileOutputStream out = new SmbFileOutputStream("smb://" + user + ":" + password + "@" + filePath
+ File.separator + fileName);
out.write("test".getBytes());
out.close();
} catch (Exception e) {
e.printStackTrace();
}
如果服务器配置为SMB服务器,这也适用于windows计算机作为目标。我想了这么多-我如何解决这个问题?在*nix下,只有当且仅当您具有sudo访问权限时,才能创建这样的文件夹结构,这在企业界是不允许的。因此,只需检查需要在何处创建该共享。问题是该共享位于第三台unix计算机上,这是完全独立的。一定有办法像windows一样访问此共享吗?@Tim,没有钥匙,你无法打开储物柜。很简单。如果您拥有密钥(sudo)权限,您将能够。如果没有,你就不能创建。无论如何,我更新了关于如何创建目录的帖子,试试看。