我知道经常有人问类似的问题。但是解决方案对我不起作用。我确实尝试过 jcifs.jar(版本 1.3.17)。在这里,我发现它非常慢,并且由于某种原因有时会挂起。由于我足够绝望,我可以应付极其缓慢的(并以不可靠的方式祈祷)。但是现在我还有一个问题,我需要压缩网络驱动器上的一些内容。这不适用于 jcifs 或者我不知道如何。我的最佳解决方案是让 copy 调用一个 .bat 来进行复制(这不起作用,因为它找不到驱动器)。并调用 7za.exe 将其压缩(找不到驱动器)。示例代码:
public static int SevenZip(String source, String dest, ServletContext context) throws IOException, InterruptedException
{
String zipFile = "\"" + context.getRealPath("") + "\\WEB-INF\\7za.exe\"";
String zipInstruction = zipFile + " a " + dest + " " + source;
Logger.getAnonymousLogger().info(zipInstruction);
Process process = Runtime.getRuntime().exec(zipInstruction);
StreamGobbler errorGobbler = new StreamGobbler(process.getErrorStream(), "ERR");
StreamGobbler outputGobbler = new StreamGobbler(process.getInputStream(), "OUT");
errorGobbler.start();
outputGobbler.start();
return process.waitFor();
}
如果不作为 servlet 完成,该代码将起作用。忽略 StreamGobbler,它只从进程中获取错误和输出流。我在某处读到可以将tomcat设置为Windows身份验证,但我不明白在哪里以及如何。这会帮助我吗?如何?