好的,我现在要说我对Java知之甚少.我得到了Bouncy Castle Jar,并告诉我将包含我需要做的任务.Jar文件是bcprov-jdk15on-147.jar.我也是在我学校维护的Unix机器上做这个,所以我不能进去玩所有的Java文件.
当我使用Javac编译我的类(特别是我使用该命令javac -classpath bcprov-jdk15on-147.jar encrypt.java)时,它编译时没有错误,但是当我使用该命令继续运行程序时java encrypt,我收到以下错误消息:
Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
Run Code Online (Sandbox Code Playgroud)
我的Jar文件位于我的主文件夹中,包含我的所有其他文件,以防万一它必须去特别的地方,这就是我没有做的事情.
当我这样做java -classpath bcprov-jdk15on-147.jar encrypt是我得到的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: encrypt
Caused by: java.lang.ClassNotFoundException: encrypt
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
Run Code Online (Sandbox Code Playgroud)
为什么我在运行已编译的程序时遇到问题?
在我的C程序中,我有一个字符串,我想一次处理一行,理想情况下通过将每行保存到另一个字符串,用所述字符串做我想要的,然后重复.但我不知道如何实现这一目标.
我在考虑使用sscanf.在sscanf中是否存在"读指针",就像我从文件中读取一样?这样做的另一种选择是什么?
我很迷茫.
我正在使用getaddrinfo获取给定Web主机的地址信息.
在这种情况下,我一直在使用www.cmu.edu.
我的代码工作了一段时间,但后来停止了.
奇怪的是,我显然遇到了错误,但是当打印出错误代码时,它会显示"成功".
以下是相关的代码:
struct addrinfo *res = NULL;
struct addrinfo hint;
memset(&hint, 0, sizeof(hint));
hint.ai_family = AF_UNSPEC;
hint.ai_socktype = SOCK_DGRAM;
hint.ai_flags = 0;
hint.ai_protocol = 17;
if (getaddrinfo(host, portNo, &hint, &res))
{
perror("getaddrinfo");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Host和portNo是包含主机(在本例中为" www.cmu.edu")和端口(在本例中为"80")的字符串.
他们肯定包含正确的东西,没有额外的空间或类似的东西.
编辑:谢谢大家!我现在至少有一个适当的错误信息,即使我仍然不知道为什么事情停止工作.错误消息是:
Servname not supported for ai_socktype
Run Code Online (Sandbox Code Playgroud)
我一直在寻找这个错误的可能原因,我没有找到任何东西.正如我所说的,这段代码工作得更早,并且在没有改变任何东西的情 我推断它可能是我使用的端口号,但我已经改变了几次而没有任何改变.
任何见解?我没有附加端口号或除主机之外的任何东西.我只是想让它运转起来.