CLASS1 (the main class)
- calls threading glass
CLASS2 (the threading class)
- calls function
- calls json.simple.jar functons
和一个.jar(https://code.google.com/p/json-simple/)
jar/json.simple.jar
现在主要的问题是,我actualy设法让这两个类与这些命令编译
javac -d . -cp '.:jar/json.simple.jar' *.java;
这将创建一个名为package1的文件夹,然后当我尝试运行它给我的错误
java javanolo.CLASS1 -jar 'jar/json.simple.jar';
Selected (9) IPS ... <-- this is the first **println**
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/simple/parser/ParseException
at javanolo.CLASS1.main(CLASS1.java:70)
Caused by: java.lang.ClassNotFoundException: org.json.simple.parser.ParseException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
我假设这是因为它没有找到一些json简单的功能。为什么?我已经导入他们
// json encode/decode
import org.json.simple.JSONValue;
import org.json.simple.JSONObject;
import org.json.simple.parser.ParseException;
,我相信,我已经进口的.jar,因为如果我运行
javac -d . *.java;
error :
import org.json.simple.JSONValue;
^
CLASS1.java:14: error: package org.json.simple does not exist
import org.json.simple.JSONObject;
^
CLASS1.java:15: error: package org.json.simple.parser does not exist
import org.json.simple.parser.ParseException;
^
CLASS2.java:16: error: package org.json.simple does not exist
import org.json.simple.JSONValue;
^
CLASS2.java:17: error: package org.json.simple does not exist
import org.json.simple.JSONObject;
^
CLASS2.java:18: error: package org.json.simple.parser does not exist
import org.json.simple.parser.ParseException;
^
CLASS2.java:148: error: cannot find symbol
public Map<String,String> openAndGetGeoDataByProxy(String ip,String port,int timeout) throws IOException, InterruptedException, ParseException
^
symbol: class ParseException
location: class CLASS2
CLASS2.java:99: error: cannot find symbol
} catch (ParseException ex) {
^
symbol: class ParseException
location: class CLASS2
CLASS2.java:188: error: cannot find symbol
Object jsonObject = JSONValue.parse(line);
^
symbol: variable JSONValue
location: class CLASS2
CLASS2.java:191: error: cannot find symbol
JSONObject jsonArray = (JSONObject)jsonObject;
^
symbol: class JSONObject
location: class CLASS2
CLASS2.java:191: error: cannot find symbol
JSONObject jsonArray = (JSONObject)jsonObject;
^
symbol: class JSONObject
location: class CLASS2
CLASS2.java:194: error: cannot find symbol
JSONObject jsonArray2 = (JSONObject)jsonArray.get("array_result");
^
symbol: class JSONObject
location: class CLASS2
CLASS2.java:194: error: cannot find symbol
JSONObject jsonArray2 = (JSONObject)jsonArray.get("array_result");
^
symbol: class JSONObject
location: class CLASS2
,所以我知道肯定JSON-simple.jar在使用时汇编。
- 主要问题是,我该如何运行CLASS1和CLASS2与该.jar文件?
- 为什么基于LINUX的系统与WINDOWS NETBEANS如此不同?我的意思是java是平台独立的...
- 何我可以连接NETBEANS到我的服务器槽SFTP,所以我可以直接编码。
谢谢。
编辑TRIES
我曾尝试下面的命令,他们没有工作,它给我的消息,好像我是运行java -help
命令
try1 java -cp .;jar/json.simple.jar javanolo.CLASS1
try2 java -cp .;'/root/folder/folder/jar/json.simple.jar' javanolo.CLASS1
try3 java -cp .;/root/folder/folder/jar/json.simple.jar javanolo.CLASS1
任何人都可以帮助我(会更好的聊天)?我真的需要这个
问题可能与相对路径有关。尝试用该jar的完整绝对路径替换json.simple.jar – MTilsted
因为json .jar不在你的类路径中。 http://www.sergiy.ca/how-to-compile-and-launch-java-code-from-command-line/ –
英戈给出了正确的答案,所以你现在会好起来的。但是,我可以建议阅读Java中的命名和编码约定,否则你的问题和代码示例对其他人来说看起来很奇怪。 – Harald