我试图调试this问题中提到的代码,更具体地说,是以下代码中的最后一行:
this
转到 .store()的声明(使用Ctrl + B)会打开一个文件 KeyStore.java :
// client credentials
KeyStore keyStore = null;
keyStore = KeyStore.getInstance("PKCS12", "BC");
keyStore.load(null, null);
keyStore.setKeyEntry(CryptographyUtils.CLIENT_NAME, endCredential.getPrivateKey(), CryptographyUtils.CLIENT_PASSWORD,
new Certificate[]{endCredential.getCertificate(), interCredential.getCertificate(), rootCredential.getCertificate()});
keyStore.store(new FileOutputStream(CryptographyUtils.CLIENT_NAME + ".p12"), CryptographyUtils.CLIENT_PASSWORD);
最后一次调用 .engineStore()实际上将证书写入输出流。转到方法的实现(Ctrl + Alt + B),显示以下选项:
导入的包含我代码中的方法的包来自:
public final void store(OutputStream stream, char[] password)
throws KeyStoreException, IOException, NoSuchAlgorithmException,
CertificateException
{
if (!initialized) {
throw new KeyStoreException("Uninitialized keystore");
}
keyStoreSpi.engineStore(stream, password);
}
我在 KeyStore.java 中添加了一个断点并且已到达。但是,放在反编译的.class文件中的断点(如图中所示的那些)不是。
我如何调试 .engineStore()方法?
答案 0 :(得分:1)
如果要调试,则需要附加public class Palindromorizor{
public static void main (String[] args){
String inputString, limit;
int n, p, numLim, num = 0;
boolean isPali;
limit = JOptionPane.showInputDialog("What is your limit?");
numLim = Integer.parseInt(limit);
while(num < numLim){
isPali = isPalindrome(num);
if(isPali == true){
System.out.print(num + " ");
++num;
}
else{
++num;
}
}
}
public static boolean isPalindrome(int num){
String strNum;
int n = 0;
int p;
boolean isPali = true;
strNum = "" + num;
p = strNum.length();
//strNum.substring(p - 1, p) + " " + p + " " + n + " " + strNum + " " + isPali);
while(p > n){
if(strNum.substring(n, n + 1) == strNum.substring(p - 1, p) && (p <= n)){
isPali = true;
}
else if(strNum.substring(n, n + 1) == strNum.substring(p - 1, p) && (p > n)){
++n;
--p;
}
else{
isPali = false;
p = n;
}
}
return isPali;
}
}
。您无法调试source files
个文件。
See this post了解如何将源代码添加到库配置中。