草庐IT

java - 如何将您的程序与对 "bad"API 的调用隔离开来?

当我使用Java开发一个(学术)软件时,我被迫使用一个实现相当糟糕的API。这意味着针对特定输入数据集调用此API有时将永远不会返回。这一定是软件中的一个错误,因为它提供的算法是确定性算法,有时它会在一组数据上终止,有时它会在同一组数据上陷入无限循环......但是,修复API或重新实现它超出了我们的范围。我什至拥有源​​代码,但该API严重依赖于其他未记录且没有源代码的API,并且当时已从网络上消失(或从未出现过?)。另一方面,这个“糟糕”的API是唯一解决我遇到的特定问题的API,所以我真的必须坚持使用它。问题是:处理行为如此恶劣的API的最简洁方法是什么?当我遇到这个问题时,我决

java - 来自 CA 的 PKCS12 Java keystore 和 Java 中的用户证书

我最近负责用Java模拟Apple产品(iPhone配置实用程序)。我一直停留的部分之一是关于ExchangeActiveSync的部分。在那里,它允许您从您的钥匙串(keychain)中选择一个证书作为您的EAS帐户的凭据。经过一些研究,我发现它实际上是在创建一个PKCS12keystore,插入我选择的证书的私钥,并将其编码为XML。到目前为止没什么大不了的。如果我使用KeychainAccess创建一个.p12文件,它可以毫无问题地上传。但是当我尝试将其移植到Java时遇到了问题。假设我将我之前与.p12文件一起使用的那些证书之一导出为.cer文件(这是我们期望在环境中获得的)。

java - 无法启动组件 - ZipException : invalid LOC header (bad signature)

这个问题在这里已经有了答案:DeployingMavenprojectthrowsjava.util.zip.ZipException:invalidLOCheader(badsignature)(15个答案)关闭4年前。我看过类似的帖子。我已经尝试了大多数这些解决方案,但无法摆脱我遇到的错误。期待这方面的帮助。这个错误是在我将Maven依赖项添加到部署程序集之后出现的。我将STS与PivotaltcServerDevelopmentEditionv3.1一起使用。我已经检查了tcserver和javahome的版本。两者都使用java8。我不明白问题是什么。SEVERE:Contai

java - 哪个更好/更有效 : check for bad values or catch Exceptions in Java

在Java中哪个更有效:检查错误值以防止异常或让异常发生并捕获它们?这里有两block示例代码来说明这种差异:voiddoSomething(typevalue1){ResultTyperesult=genericError;if(value1==badvalue||value1==badvalue2||...){result=specificError;}else{DoSomeActionThatFailsIfValue1IsBad(value1);//...result=success;}callback(result);}对比voiddoSomething(typevalue1)

java.util.zip.ZipError : invalid CEN header (bad signature)

我在RedHatLinux上使用Java1.7.0_40,我有以下代码:Pathzipfile=Paths.get(filename);FileSystemfs=FileSystems.newFileSystem(zipfile,FileTest.class.getClassLoader());filename变量指向一个788MB的zip文件。zip文件的未压缩大小为8.3GB。当我运行上面的代码时,出现以下异常:Exceptioninthread"main"java.util.zip.ZipError:invalidCENheader(badsignature)atcom.sun.

java - 如何检查X509Certificate是否为CA证书?

我在Java中有一个X509Certificate实例,我需要确定它是CA证书还是用户证书。谁能提供任何帮助?提前致谢! 最佳答案 根据我的研究,可以通过检查基本约束来检查!检查API用于返回getBasicConstraints()方法的结果。因此,如果该方法返回结果!=-1,则可以将证书视为CA证书。我已经用几个CA证书(根证书和中间证书)对此进行了检查,它按描述工作。我还使用多个用户证书检查了此方法,该方法返回-1作为结果。 关于java-如何检查X509Certificate是否

java - 是通过对象 "bad form"调用静态方法吗?为什么?

在最近的一个问题中,有人询问了静态方法,其中一个答案表明您通常用类似的方式调用它们:MyClassName.myStaticMethod();对此的评论还指出,您也可以通过具有以下内容的对象调用它:MyClassNamemyVar;myVar.myStaticMethod();但它被认为是错误的形式。现在在我看来,这样做实际上可以让我的生活更轻松,所以我不必担心什么是静态的(a)。通过对象调用静态函数有什么问题吗?显然,您不希望创建一个全新的对象只是为了调用它:Integerxyzzy;intplugh=xyzzy.parseInt("42",10);但是,如果您已经有了所需类型的对象

java - 获取错误 : "bad read of inttemp!" when training a new font in Tesseract 2

我正在尝试针对可在我的Android应用程序中使用的新字体训练Tesseract。我只需要训练数字,所以我创建了一个训练图像、box文件和unicharset文件。我关注了thetraininginstructions,但是当我尝试运行tesseract时,它说,badreadofinttemp!。我做错了什么?我如何诊断此错误? 最佳答案 http://code.google.com/p/tesseract-ocr/issues/detail?id=155事实证明,tesseract仍在返回到“C:\ProgramFiles\Te

java - 在 Java 中针对 CA 验证 X.509 证书

假设我有这样的东西(客户端代码):TrustManager[]trustAllCerts=newTrustManager[]{newX509TrustManager(){@Overridepublicjava.security.cert.X509Certificate[]getAcceptedIssuers(){returnnull;}@OverridepublicvoidcheckClientTrusted(java.security.cert.X509Certificate[]certs,StringauthType){}@OverridepublicvoidcheckServer

java - 静态变量 : Good or Bad?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whyarestaticvariablesconsideredevil?我有在所有程序中广泛使用静态变量的习惯,尤其是在我使用Android时。我倾向于使用它们,因为有时感觉通过Intent发送10个或更多值很麻烦。因此,我只是将它们声明为静态变量,并使用“点”运算符在其他类中轻松访问它们。使用静态变量的另一个原因是当我制作要在整个应用程序中使用的实用程序类时。就像我在下面给出的代码帮助我在不同的Activity中使用变量。Utility.javapublicclassUtility{publicstatic