- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
TFile依赖于 java.nio.file.Path(toPath() 方法返回 java.nio.file.Path),该路径在 Java 6 上不可用,因此在 Java 6 上调用任何 TFile 方法都会抛出“java.lang.NoClassDefFoundError: java/nio”/文件/路径”
如何在 Java 6 上使用 TFile?我正在考虑的是获取源代码,在没有这种方法的情况下重新编译它们,并使用修补版本,这是一种令人不愉快的解决方案。
最佳答案
不,TrueZIP 7 不需要 JSE 7,JSE 6 作为主页文档就足够了。但是,某些功能仅在 JSE 7 上可用(例如 TrueZIP Path 模块),因此需要执行运行时测试。
使用正确的类加载器实现,您将永远不会看到 NoClassDefFoundError。然而,某些环境已经破坏了类加载器的实现,尽管规范强制要求延迟类加载,但仍会进行急切的类加载。只有这样你才会得到一个NoClassDefFoundError。
另外,请注意该项目的 Eclipse 许可证。如果您确实想通过修补来解决此问题(您不能,因为 java.io.File 和 java.nio.file.Path 之间存在循环依赖关系,这就是此设计的原因),那么您必须发布此分支.
附录:
Java 6 的 Java 语言规范,chapter 12.2.1 "The Loading Process"内容如下:
Different subclasses of ClassLoader may implement different loading policies. In particular, a class loader may cache binary representations of classes and interfaces, prefetch them based on expected usage, or load a group of related classes together. These activities may not be completely transparent to a running application if, for example, a newly compiled version of a class is not found because an older version is cached by a class loader. It is the responsibility of a class loader, however, to reflect loading errors only at points in the program where they could have arisen without prefetching or group loading.
英语不是我的母语,但我从最后一句话中得知,只要类加载器不会仅仅因为未使用的类未能急切加载而抛出错误,急切的类加载就可以。因此,如果类加载器由于 TFile.toPath() 需要返回 java.nio.file.Path 而抛出,尽管您从未调用此方法,那么我认为这是类加载器的问题。顺便说一句,TFile.toPath() 会抛出 UnsupportedOperationException - 请检查 Javadoc 了解详细信息。
我更愿意采取另一条路线,但 java.io.File.toPath() 和 java.nio.file.Path.toFile() 之间的循环依赖让我别无选择。
关于TrueZip 7 需要 Java 7? NoClassDefFound错误: java/nio/file/Path on Java 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14270141/
我使用 TrueZip 进行压缩。这是我的代码的样子 public String compress() throws IOException { if (logLocations.isEm
有没有人使用过 TrueZip java 库?我正在尝试执行本应是一项简单的任务,即解压缩包含子文件夹的存档,但到目前为止我一直无法让它工作。 (我使用 TrueZip 的原因是因为 java.uti
我在使用以下代码时遇到问题: TFile src = new TFile(this.getMellomStasjon()); TFile dst = new TFile(this.ge
我正在创建一个 java 应用程序,它将提取 Powerpoint (PPTX) 文档中嵌入的缩略图。由于 pptx 文件是 zip 存档,因此我尝试使用 TrueZip 来获取存档内找到的缩略图。不
假设我在服务器上有一个大的 zip 文件,并且我有兴趣通过 HTTP 从中提取一个子集。这在 TrueZip 中是否可行?如果可行,如何实现?这个想法是不必下载整个 zip,而只需下载 zip 标题,
我试图了解如何在 Java 6 环境中使用 TrueZIP(使用 Files 类)随机遍历 .tar.gz 中的文件。我发现它使用 Java 7 的 Path 的实例,但是,我无法想出一个关于如何在
根据 TrueZip 文档,length() 方法似乎返回 0 或 -1。我正在更新 WAR 存档,并且只想更新长度已更改的文件。如何实现这一目标? 提前致谢, 马丁 最佳答案 首先,调用方法 TFi
使用 TrueZIP,有没有办法从流中打开和修改现有的 ZIP 文件(当然可以使用另一个流输出)? 我有修改 ZIP 的代码,只要我处理文件系统上现有的真实 ZIP 文件,该代码就可以完美运行,但我要
有一个小程序在 TrueZip 6 上运行良好。最近我通过在项目的类路径中添加 6 个包将 TrueZip jar 更新到版本 7.7.9:truezip-driver-file, truezip-d
我运行一个简单的 TrueZip 代码: TFile src = new TFile(path + file_to_add); TFile dst = new TFi
这是我使用 TrueZIP 将 war 文件复制到另一个文件的代码。 TFile srcFile = new TFile(sourceFilePath); TFile destFile = new T
本文整理了Java中de.schlichtherle.truezip.zip.ZipFile类的一些代码示例,展示了ZipFile类的具体用法。这些代码示例主要来源于Github/Stackoverf
本文整理了Java中de.schlichtherle.truezip.zip.ZipOutputStream类的一些代码示例,展示了ZipOutputStream类的具体用法。这些代码示例主要来源于G
有没有一种方法无需执行即可使用 TrueZip 获取文件夹的大小我自己递归?我担心运行时,因为我正在处理包含大量文件的文件。 使用 TrueZip 7.7.9 最佳答案 好的,这是一个仅使用标准 Ja
我有一个使用 PhantomJS 的项目。有这个插件会自动安装它: com.github.klieber phantomjs-maven-plugin
我对 truezip 有一个奇怪的问题。我运行以下代码: TFile.setDefaultArchiveDetector(new TArchiveDetector("zip")); S
我想使用 TrueZip 库将文件附加到现有存档(不是通过解包、添加文件和重新打包——新版本应该有这个 功能),但我觉得理解 API 有点困难。能否请比我知识渊博的人用几行建议如何做到这一点? 最佳答
有没有办法使用 TrueZip 访问存档内的文件,同时忽略文件名大小写? 想象一下以下 zip 存档的内容: MyZip.zip -> myFolder/tExtFile.txt -> another
引用这篇文章,我已成功压缩和解压缩文件夹 - TrueZip - How to decompress inner jar/zip files without expanding them as dir
我想在服务器中使用 TrueZIP 7.7 库来解压缩用户上传的存档。我不打算使用加密的文件,特别是,因为这是一个服务器,所以我不需要 Swing 弹出窗口来请求 key 。然而,当我创建一些简单的解
我是一名优秀的程序员,十分优秀!