Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何运行包含.jar文件的java程序_Java_Linux_Jakarta Ee_Ubuntu_Javac - Fatal编程技术网

如何运行包含.jar文件的java程序

如何运行包含.jar文件的java程序,java,linux,jakarta-ee,ubuntu,javac,Java,Linux,Jakarta Ee,Ubuntu,Javac,我有两门课 CLASS1 (the main class) - calls threading glass CLASS2 (the threading class) - calls function - calls json.simple.jar functons 和一个.JAR() 现在主要的问题是,我实际上设法使这两个类都使用这些命令进行编译 javac -d . -cp '.:jar/json.simple.jar' *.java; 这将创建一个名为pack

我有两门课

CLASS1 (the main class)
    - calls threading glass


CLASS2 (the threading class)
    - calls function
    - calls json.simple.jar functons
和一个.JAR()

现在主要的问题是,我实际上设法使这两个类都使用这些命令进行编译

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
我确信我已经导入了.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
javac-d.*。JAVA
错误:
导入org.json.simple.JSONValue;
^
CLASS1.java:14:错误:包org.json.simple不存在
导入org.json.simple.JSONObject;
^
CLASS1.java:15:错误:包org.json.simple.parser不存在
导入org.json.simple.parser.ParseException;
^
CLASS2.java:16:错误:包org.json.simple不存在
导入org.json.simple.JSONValue;
^
CLASS2.java:17:错误:包org.json.simple不存在
导入org.json.simple.JSONObject;
^
CLASS2.java:18:错误:包org.json.simple.parser不存在
导入org.json.simple.parser.ParseException;
^
java:148:错误:找不到符号
公共映射openAndGetGeoDataByProxy(字符串ip、字符串端口、int超时)引发IOException、InterruptedException、ParseException
^
符号:类解析异常
地点:2班
CLASS2.java:99:错误:找不到符号
}捕获(解析异常){
^
符号:类解析异常
地点:2班
java:188:错误:找不到符号
objectjsonobject=JSONValue.parse(行);
^
符号:变量JSONValue
地点:2班
CLASS2.java:191:错误:找不到符号
JSONObject jsonArray=(JSONObject)JSONObject;
^
符号:类JSONObject
地点:2班
CLASS2.java:191:错误:找不到符号
JSONObject jsonArray=(JSONObject)JSONObject;
^
符号:类JSONObject
地点:2班
java:194:错误:找不到符号
JSONObject jsonArray2=(JSONObject)jsonArray.get(“数组_结果”);
^
符号:类JSONObject
地点:2班
java:194:错误:找不到符号
JSONObject jsonArray2=(JSONObject)jsonArray.get(“数组_结果”);
^
符号:类JSONObject
地点:2班
所以我确信编译时会使用json-simple.jar

  • 主要问题是,如何使用该.jar文件运行CLASS1和CLASS2
  • 为什么基于LINUX的系统与WINDOWS NETBEANS如此不同?我的意思是java是独立于平台的
  • 我可以通过SFTP将NETBEANS连接到我的服务器,这样我就可以直接在那里编码了
  • 谢谢

    编辑尝试

    我尝试了以下命令,但都不起作用,它给我的消息就像我在运行
    java-help
    命令一样

    try1
    java-cp;jar/json.simple.jarjavanolo.CLASS1

    try2
    java-cp.'/root/folder/folder/jar/json.simple.jar'javanolo.CLASS1

    尝试3
    java-cp./root/folder/folder/jar/json.simple.jarjavanolo.CLASS1

    有人能帮我吗(聊天会更好)?我真的需要这个

    和这个:

    java javanolo.CLASS1 -jar 'jar/json.simple.jar'
    
    运行类并将命令行的其余部分,即
    -jar/json.simple.jar
    作为参数

    你想要的是:

    java -cp .;jar/json.simple.jar javanolo.CLASS1
    
    或者,在UNIX shell中:

    java -cp .:jar/json.simple.jar javanolo.CLASS1
    

    请注意,您的类路径在编译和执行时是相同的。

    问题可能在于相对路径。请尝试用该jar的完整绝对路径替换json.simple.jar,因为json.jar不在您的类路径中。Ingo给出了正确的答案,所以您现在就可以了。但是我建议您阅读有关命名和编码conv的内容在Java中使用ntions,否则您的问题和代码示例对其他人来说都很奇怪。我尝试了一些但不起作用,请参见主帖子中的编辑尝试。您好。我尝试了一些但不起作用,请参见主帖子中的编辑尝试。我不知道下一步该怎么办,您能帮助我吗?我真的需要帮助this@Damian在UNIX上,替换
    是的,这就是问题所在,我自己想出来了,但我忘了设置可接受的答案。非常感谢,现在我了解了它是如何工作的…但我不明白为什么JAVA如此复杂,我的意思是C更好…我认为“与平台无关”是一个advantage@Damian嗯,PATH语法早于Java,Java命令行工具(如javac、Java等)已经适应了它-这对熟悉其平台的命令行的开发人员来说无疑是一件好事。对于新手来说,这更难。因此,与其说是Java,不如说是已有的约定让事情变得困难。是的,我同意你的看法,但从我的观点来看,JAVA似乎比其他语言更难,而且你必须编写两倍的代码,这不是很省时。再次感谢你。另外,我还有一个关于在后台运行exec命令的问题。如果你有时间,请查看我的帐户。
    java -cp .;jar/json.simple.jar javanolo.CLASS1
    
    java -cp .:jar/json.simple.jar javanolo.CLASS1