首先,我已经搜索了一些相关主题,并且已经尝试了这些主题中指出的解决方案,但是仍然存在一些问题,因此在这里我将尝试寻求解决方案以对其进行解释。
我正在尝试在命令行上编译已经在eclipse上运行的Java程序。
.jar文件和java文件都在同一目录中,我要编译的类不在.jar中,但是在该类中,我使用了一些属于.jar的方法(paillier.jar)
我首先尝试了这个:
javac -cp paillier.jar CoupleGen.java
java -cp paillier.jar CoupleGen
第一行给出CoupleGen.class并暂时没有问题,当我键入第二行时,它给了我错误
Error: Could not find or load main class CoupleGen
因此,在这里阅读一些主题我尝试了另一种方式
javac -cp paillier.jar CoupleGen.java
java -cp .;paillier.jar CoupleGen
结果是这些行的末尾的“ how-to-use” java命令列表
paillier.jar command not found
所以,我显然犯了一些错误,但实际上我听不懂。
万一需要它,我设置环境变量。
任何帮助都非常感谢。
干杯
这是我要编译的代码
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.Random;
import paillierp.key.KeyGen;
import paillierp.key.PaillierKey;
import paillierp.key.PaillierPrivateKey;
public class CoupleGen {
public static void main(String[] args) throws IOException{
//Creo un messaggio m da criptare
//for (int j=1; j==2; j++){
int nodeID=5;
int s=32;
Random random = new Random();
long seed = random.nextLong();
PaillierPrivateKey pr= KeyGen.PaillierKey(s, seed);
PaillierKey pu= pr.getPublicKey();
System.out.println("PublicKey:("+pr.getN()+","+pr.getNPlusOne()+")");
String pubkey ="PublicKey"+nodeID;
FileWriter File= new FileWriter(pubkey);
PrintWriter out=new PrintWriter(File);
out.println("n:" + pu.getN());
out.println("n+1:" + pu.getNPlusOne());
out.println("n^s:" + pu.getNS());
out.println("n^s+1:" + pu.getNSPlusOne());
// out.println("rnd:" + pu.getRnd());
out.println("k:" + pu.getK());
out.close();
//} for not working on this pc
}
}
最佳答案
当您在行下执行时,您得到以下错误吗?
javac -cp paillier.jar CoupleGen.java
错误:找不到或加载主类CoupleGen
这意味着编译器正在paillier.jar中寻找CouplenGen.java。实际上,CoupleGen在jar文件之外。