【发布时间】:2015-02-21 10:17:01
【问题描述】:
首先,我搜索了一些相关的主题,并且已经尝试了那些解决方案,但仍然存在一些问题,所以我会在这里尝试解释一下,希望有解决方案。
我正在尝试在命令行上编译一个已经在 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
结果是这些行末尾的“如何使用”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
}
}
【问题讨论】:
-
java -cp ".;paillier.jar" CoupleGen
-
Windows 还是 Linux? (提示:Linux 使用 : 作为路径分隔符)
-
第一次运行 set classpath=%classpath%;.;在命令提示符下,然后做你已经在做的事情。
-
用过 .: 和 :.但事实上我的类不包含在 .jar 中,它给了我错误
Error: Could not find or load main class CoupleGen
标签: java eclipse command-line jar javac