作者chisilence (毛毛)
看板java
标题[问题] Eclipse换用command line
时间Mon Dec 8 16:35:15 2014
因为一些因素从eclipse转为使用command line来编译执行程式
遇到了一些设定上的问题 想请教JAVA版的各位
OS为Linux Suse
安装的jdk 为 1.7.0_71
以下是我 /etc/profile中的设定
export JAVA_HOME="/usr/java/jdk1.7.0_71"
export PATH=/usr/java/jdk1.7.0_71/bin:$PATH
export CLASSPATH=.:$CLASSPATH:/usr/java/jdk1.7.0_71
程式码的路径为/user/test/HelloWorld.java
并将所需的jar放置在test资料夹中
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
public class HelloWorld {
public static void main(final String[] args) {
final CacheManager cacheManager = new CacheManager();
final Cache dataStore = cacheManager.getCache("hello-world");
final String key = "greeting";
final Element putGreeting = new Element(key, "Hello, World!");
dataStore.put(putGreeting);
final Element getGreeting = dataStore.get(key);
System.out.println(getGreeting.getObjectValue());
}
}
程式码的部分有在eclipse执行过确认没有问题
原本在eclipse执行时可加入external jar
使用javac 编译时用 javac -cp ehcache-ee-2.9.0.jar HelloWorld.java
可编译成功 用 java -cp . HelloWorld 出现以下错误
Exception in thread "main" java.lang.NoClassDefFoundError:
net/sf/ehcache/CacheManager
at HelloWorld.main(HelloWorld.java:10)
参考过的path jar那篇M文
有尝试把所需的jar档放置 jdk1.7.0_71/jre/lib/ext中
可直接使用javac HelloWorld.java编译成功
使用java -cp . HelloWorld 出现以下错误
Exception in thread "main" java.lang.NullPointerException
at HelloWorld.main(HelloWorld.java:22)
想请教JAVA版的各位
在CLASSPATH的部分是否设定有误
另假如我想要在任一资料夹中编写程式 ex file.java
并直接在该资料夹使用 javac file.java 编译 并用 java file直接执行
这样file.java中所使用到的第三方jar档
是要放置在jdk1.7.0_71/jre/lib/ext中
或者是放置在特定资料夹 在将该资料夹的路径设定在CLASSPATH中
恳请各位指点
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.164.122.25
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1418027718.A.6DA.html
1F:→ pico2k: 用到的jar档要个别设定... 12/08 19:32
2F:→ kogrs: 你的jar 没加到class path 下 12/09 01:08
3F:推 Killercat: 用ant/maven会简单一点 不然你的java会长的一大串 12/09 04:31
4F:→ Killercat: 或者可以参考一下gradle 12/09 04:31