1
我無法運行在IntelliJ IDEA ide中正常工作的java程序。我得到當我運行相同的代碼(去掉包裝後..)如下NoClassDefFoundError在IDE中運行終端中的java程序時
Exception in thread "main" java.lang.NoClassDefFoundError: fcrypt
Caused by: java.lang.ClassNotFoundException: fcrypt
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
所有我做的主要方法是創建主類的實例,並調用多種方法的錯誤。只有標題的代碼和下面
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.util.encoders.Base64;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.io.*;
import java.security.*;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.Arrays;
/**
* Created by Aditya Rao on 05/02/14.
*/
public class fcrypt {
private static final String RSA_NONE_PKCS1PADDING = "RSA/None/PKCS1Padding";
static {
Security.addProvider(new BouncyCastleProvider());
}
....
public static void main (String[] args) throws Exception {
if (args.length != 5) {
System.out.print("Invalid parameters. ");
printUsage();
System.exit(1);
}
if (!(args[0].equals("-e") | args[0].equals("-d"))) {
System.out.print("Please specify usage. ");
printUsage();
System.exit(1);
}
fcrypt f = new fcrypt();
String[] inputs = Arrays.copyOfRange(args, 1, args.length);
if (args[0].equals("-e"))
f.encryptAndSign(inputs);
else
f.verifyAndDecrypt(inputs);
}
}
我在這裏失去了一些東西的主要方法是什麼?
編輯我編譯,用下面的命令
javac -cp libs/bcprov-jdk15on-150.jar fcrypt.java
java -cp libs/bcprov-jdk15on-150.jar fcrypt <args>
聽起來像是http://en.wikipedia.org/wiki/Classpath_(Java)問題。確保你在執行jar時傳遞類路徑。 IntelliJ可能會自動附加此。 intellij執行的確切命令行是什麼?它應該在運行應用程序時在一個小終端提示符中說 – devshorts
我有bouncycastle jar,但是我已經添加了合適的類路徑來編譯和運行該程序。我用命令編輯了這個問題。 – adifire
fcrypt有一個構造函數嗎?如果刪除fcrypt f = new fcrypt()會發生什麼?從主要內部?錯誤是否改變? –