Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Truezip将新文件添加到zip存档_Java_Truezip - Fatal编程技术网

Java 使用Truezip将新文件添加到zip存档

Java 使用Truezip将新文件添加到zip存档,java,truezip,Java,Truezip,我找了又找,所以相信我,当我说我真的被难住了。注意:我被迫使用Java6 我需要使用Java以编程方式将XML文件插入到zip存档中,但不提取存档并重新压缩它。我被指向Truezip作为我问题的解决方案,但我似乎无法让Truezip认识到我的“archive.zip”是一个归档文件。当我试图通过以下方式访问存档文件时,会收到消息“archive.zip/file.txt不是目录”: new TFile("example.zip/audit.xml") 我引用了Truezip博客以及一些关于S

我找了又找,所以相信我,当我说我真的被难住了。注意:我被迫使用Java6

我需要使用Java以编程方式将XML文件插入到zip存档中,但不提取存档并重新压缩它。我被指向Truezip作为我问题的解决方案,但我似乎无法让Truezip认识到我的“archive.zip”是一个归档文件。当我试图通过以下方式访问存档文件时,会收到消息“archive.zip/file.txt不是目录”:

new TFile("example.zip/audit.xml") 
我引用了Truezip博客以及一些关于StackOverflow的问题,但是我找不到任何代码示例来说明我正在尝试做什么。任何人都可以提供/指向执行这样简单任务的代码段吗

完整堆栈跟踪:

java.io.FileNotFoundException: /Users/ss042306/java-scan-example/target/fortify/example.zip/audit.xml
at de.schlichtherle.truezip.file.TFileOutputStream.newOutputStream(TFileOutputStream.java:147)
at de.schlichtherle.truezip.file.TFileOutputStream.<init>(TFileOutputStream.java:116)
at com.fortify.ps.maven.plugin.sca.ScanMojo.copyPreviousComments(ScanMojo.java:745)
at com.fortify.ps.maven.plugin.sca.ScanMojo.execute(ScanMojo.java:332)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: java.nio.file.NoSuchFileException: /Users/ss042306/java-scan-example/target/fortify/example.zip/audit.xml
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
    at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:434)
    at java.nio.file.Files.newOutputStream(Files.java:216)
    at de.schlichtherle.truezip.fs.nio.file.FileOutputSocket$1OutputStream.<init>(FileOutputSocket.java:243)
    at de.schlichtherle.truezip.fs.nio.file.FileOutputSocket.newOutputStream(FileOutputSocket.java:257)
    at de.schlichtherle.truezip.file.TFileOutputStream.newOutputStream(TFileOutputStream.java:143)
    ... 24 more
java.io.FileNotFoundException:/Users/ss042306/java扫描示例/target/fortify/example.zip/audit.xml
位于de.schlichtherle.truezip.file.TFileOutputStream.newOutputStream(TFileOutputStream.java:147)
位于de.schlichtherle.truezip.file.TFileOutputStream。(TFileOutputStream.java:116)
在com.fortify.ps.maven.plugin.sca.ScanMojo.copyPreviousComments上(ScanMojo.java:745)
位于com.fortify.ps.maven.plugin.sca.ScanMojo.execute(ScanMojo.java:332)
位于org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
位于org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
位于org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
位于org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
位于org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
位于org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317)
位于org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
位于org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
位于org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
位于org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:497)
位于org.codehaus.plexus.classworlds.launcher.launcher.launchEnhanced(launcher.java:289)
位于org.codehaus.plexus.classworlds.launcher.launcher.launch(launcher.java:229)
位于org.codehaus.plexus.classworlds.launcher.launcher.mainWithExitCode(launcher.java:415)
位于org.codehaus.plexus.classworlds.launcher.launcher.main(launcher.java:356)
原因:java.nio.file.NoSuchFileException:/Users/ss042306/java扫描示例/target/fortify/example.zip/audit.xml
位于sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
位于sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
位于sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
位于sun.nio.fs.UnixFileSystemProvider.newbytechnel(UnixFileSystemProvider.java:214)
位于java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:434)
位于java.nio.file.Files.newOutputStream(Files.java:216)
位于de.schlichtherle.truezip.fs.nio.file.FileOutputSocket$1OutputStream。(FileOutputSocket.java:243)
位于de.schlichtherle.truezip.fs.nio.file.FileOutputSocket.newOutputStream(FileOutputSocket.java:257)
位于de.schlichtherle.truezip.file.TFileOutputStream.newOutputStream(TFileOutputStream.java:143)
... 还有24个
我引用了以下资源:

[1]

[2]

[3]

编辑:Truezip没有按描述的那样工作,因为我没有将.zip文件视为虚拟目录所需的所有依赖项。在我的pom.xml中包含下面的代码片段之后,我可以将ZIP文件作为虚拟目录进行交互

`   <dependency>
        <groupId>de.schlichtherle.truezip</groupId>
        <artifactId>truezip-driver-zip</artifactId>
        <version>7.7.9</version>
    </dependency>` 
`
德施利希瑟尔
truezip驱动程序
7.7.9
` 

如果没有此依赖项,就没有TArchiveDetector可用于将“.zip”标识为存档。

也许您的类路径只是缺少TrueZIP驱动程序zip JAR


我通常建议从TrueZIP原型文件*生成一个示例项目,然后根据您的需要对其进行定制/集成。请按照页面上的说明进行操作-它将引导您完成整个过程。

也许您的类路径只是缺少TrueZIP驱动程序ZIP JAR


我通常建议从TrueZIP原型文件*生成一个示例项目,然后根据您的需要对其进行定制/集成。请按照页面上的说明操作-它将引导您完成整个过程。

我遇到异常情况
从这开始。读那些。谷歌那些。如果你仍然不能理解这些,那么把它们添加到问题中。道歉是为了包含更多的东西,只是需要打印出来。我被告知“archive.zip\file.txt”不是一个目录,这对了解发生了什么没有多大帮助。请添加从发布的代码spinet中获得的完整异常堆栈跟踪。添加了跟踪。我知道该文件存在于该zip文件中。我的问题是,我试图访问truezip描述的zip文件的内部,但没有得到相同的结果。我想我没有正确地设置一些东西,但我没有任何好的例子可供参考。
我有例外情况
从那开始。读那些。谷歌那些。如果你仍然不能理解这些,那么把它们添加到问题中。道歉是为了包含更多的东西,只是需要打印出来。我被告知“archive.zip\file.txt”不是一个目录,它不是一个很好的目录