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