java的classpath应用路径问题

txwd0033 2015-07-03 04:44:55
java初学,写了一个解析json的小程序

import org.json.*;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;

public class Main {

public static void main(String[] args) {
String filename = args[0];
System.out.println(filename);

try {
FileInputStream fis = new FileInputStream("d:\\t.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String line= br.readLine();
while (line != null) {
JSONObject jsobj = new JSONObject(line);
line = br.readLine();
}
}
catch (Exception ex) {
System.out.print("error:" + ex.getMessage());
}
System.out.println("Hello World!");
}
}



编译用javac -cp “org.json.jar" Main.java, 没有问题,生成 Main.class;
运行时,用java Main, 会爆如下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject
at Main.main(Main.java:29)
Caused by: java.lang.ClassNotFoundException: org.json.JSONObject
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:425)


加上classpath, 用 java -cp "./" Main, 会爆:
Error: Could not find or load main class Main

有点糊涂了,那个大神给我解答一下
...全文
207 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oh_Maxy 2015-07-06
  • 打赏
  • 举报
回复
引用 3 楼 txwd0033 的回复:
[quote=引用 1 楼 oh_Maxy 的回复:] json 相关的jar包放到main.class同级目录下没?
已经放了[/quote] 在path环境变量最前面增加 .; 注意,是一个点和一个分号
txwd0033 2015-07-06
  • 打赏
  • 举报
回复
在stackoverflow上找到答案了,谢谢各位
txwd0033 2015-07-06
  • 打赏
  • 举报
回复
引用 2 楼 attilax 的回复:
应该是缺失lib的参数.. %javaexec% -classpath ".;.\classes;%~dp0bin;%atibrow_home%\bin" -Djava.ext.dirs="%~dp0lib;%atibrow_home%\lib" -Djava.library.path="%~dp0dll;%atibrow_home%\dll" chrriis.dj.nativeswing.swtimpl.demo.examples.webbrowser.Ati4vod 这个是运行参数 -Djava.ext.dirs这个参数指定了lib的位置
libpath和classpath有什么区别?
txwd0033 2015-07-06
  • 打赏
  • 举报
回复
引用 1 楼 oh_Maxy 的回复:
json 相关的jar包放到main.class同级目录下没?
已经放了
attilax 2015-07-04
  • 打赏
  • 举报
回复
应该是缺失lib的参数.. %javaexec% -classpath ".;.\classes;%~dp0bin;%atibrow_home%\bin" -Djava.ext.dirs="%~dp0lib;%atibrow_home%\lib" -Djava.library.path="%~dp0dll;%atibrow_home%\dll" chrriis.dj.nativeswing.swtimpl.demo.examples.webbrowser.Ati4vod 这个是运行参数 -Djava.ext.dirs这个参数指定了lib的位置
oh_Maxy 2015-07-03
  • 打赏
  • 举报
回复
json 相关的jar包放到main.class同级目录下没?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧