У меня есть 2 классовКак запустить программу Java, включая файл .jar
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, чтобы я мог напрямую его закодировать.
Спасибо.
EDIT ПЫТАЕТСЯ
я попробовал следующие команды, ни один из них не работает, он дает мне сообщение, как я управлял 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
Может ли кто-нибудь помочь мне (лучше в чате)? я действительно нужна эта
Проблема может быть связана с относительным путем. Попробуйте заменить json.simple.jar полным полным путем для этого jar – MTilsted
Поскольку json .jar не находится в вашем пути к классам. http://www.sergiy.ca/how-to-compile-and-launch-java-code-from-command-line/ –
Ingo дал правильный ответ, так что теперь все будет хорошо. Но могу ли я предложить прочитать о соглашениях об именах и кодировании в Java, иначе ваши вопросы и примеры кода выглядят странно для всех остальных. – Harald