<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>研究研究 &#187; 语言与算法</title>
	<atom:link href="http://www.yanjiuyanjiu.com/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yanjiuyanjiu.com</link>
	<description>关注互联网和人工智能</description>
	<lastBuildDate>Wed, 04 Jan 2012 04:36:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>用javac命令行编译多个java文件</title>
		<link>http://www.yanjiuyanjiu.com/2011/06/23/javac-mutiple-files/</link>
		<comments>http://www.yanjiuyanjiu.com/2011/06/23/javac-mutiple-files/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 07:21:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[语言与算法]]></category>

		<guid isPermaLink="false">http://www.yanjiuyanjiu.com/?p=4204</guid>
		<description><![CDATA[1. CLASSPATH一定要具体到jar路径，例如 export CLASSPATH=/usr/lib/jvm/java-6-sun/lib/commons-codec.jar:/usr/lib/jvm/java-6-sun/lib/commons-httpclient-3.1.jar:/usr/lib/jvm/java-6-sun/lib/commons-logging-1.1.jar:/usr/lib/jvm/java-6-sun/lib/dt.jar:/usr/lib/jvm/java-6-sun/lib/htmlconverter.jar:/usr/lib/jvm/java-6-sun/lib/jconsole.jar:/usr/lib/jvm/java-6-sun/lib/junit-4.1.jar:/usr/lib/jvm/java-6-sun/lib/mysql-connector-java-5.1.16-bin.jar:/usr/lib/jvm/java-6-sun/lib/sa-jdi.jar:/usr/lib/jvm/java-6-sun/lib/tools.jar 2. 每个java文件给出路径，最常见的是用通配符*，不支持目录递归。 3. 最好加上 -d，这样会在这个目录下生成class文件，而不会和java文件混在一起 看我的一个具体的例子 javac -d /home/dfq/crawler/bin crawler/*.java weibo4j/*.java weibo4j/org/json/*.java weibo4j/*.java weibo4j/util/*.java weibo4j/http/*.java 运行时用如下命令： cd /home/dfq/crawler/bin java -cp .:$CLASSPATH crawler.ManagerThread]]></description>
			<content:encoded><![CDATA[<p>1. CLASSPATH一定要具体到jar路径，例如<br />
export CLASSPATH=/usr/lib/jvm/java-6-sun/lib/commons-codec.jar:/usr/lib/jvm/java-6-sun/lib/commons-httpclient-3.1.jar:/usr/lib/jvm/java-6-sun/lib/commons-logging-1.1.jar:/usr/lib/jvm/java-6-sun/lib/dt.jar:/usr/lib/jvm/java-6-sun/lib/htmlconverter.jar:/usr/lib/jvm/java-6-sun/lib/jconsole.jar:/usr/lib/jvm/java-6-sun/lib/junit-4.1.jar:/usr/lib/jvm/java-6-sun/lib/mysql-connector-java-5.1.16-bin.jar:/usr/lib/jvm/java-6-sun/lib/sa-jdi.jar:/usr/lib/jvm/java-6-sun/lib/tools.jar</p>
<p>2. 每个java文件给出路径，最常见的是用通配符*，不支持目录递归。</p>
<p>3. 最好加上 -d，这样会在这个目录下生成class文件，而不会和java文件混在一起</p>
<p>看我的一个具体的例子<br />
javac  -d /home/dfq/crawler/bin crawler/*.java weibo4j/*.java weibo4j/org/json/*.java weibo4j/*.java weibo4j/util/*.java weibo4j/http/*.java</p>
<p>运行时用如下命令：<br />
cd /home/dfq/crawler/bin<br />
java -cp .:$CLASSPATH crawler.ManagerThread</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yanjiuyanjiu.com/2011/06/23/javac-mutiple-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>java命令行下运行class文件</title>
		<link>http://www.yanjiuyanjiu.com/2010/02/15/run-java-class-in-console/</link>
		<comments>http://www.yanjiuyanjiu.com/2010/02/15/run-java-class-in-console/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 08:16:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[语言与算法]]></category>

		<guid isPermaLink="false">http://www.yanjiuyanjiu.com/archives/4072.html</guid>
		<description><![CDATA[今天碰到了一个很变态的问题，写了一个很简单的HelloWord.java，内容如下： package com.yanjiuyanjiu; public class HelloWorld { public static void main(String args[]) { System.out.println(“Hello World!”); } } 在eclipse中运行是可以的，但是在命令行下运行总是失败。我的工程位置为 d:\workspace\HelloWorld\。 尝试了很多次，如下 d:\workspace\HelloWorld\bin\com\yanjiuyanjiu\&#62;java HelloWorld Exception in thread “main” java.lang.NoClassDefFoundError: HelloWorld (wrong name: com/yanjiuyanjiu/HelloWorld) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) [...]]]></description>
			<content:encoded><![CDATA[<p>今天碰到了一个很变态的问题，写了一个很简单的HelloWord.java，内容如下：<br />
package com.yanjiuyanjiu;</p>
<p>public class HelloWorld {<br />
public static void main(String args[]) {<br />
System.out.println(“Hello World!”);<br />
}<br />
}</p>
<p>在eclipse中运行是可以的，但是在命令行下运行总是失败。我的工程位置为 d:\workspace\HelloWorld\。</p>
<p>尝试了很多次，如下</p>
<p><span style="color: #808080;">d:\workspace\HelloWorld\bin\com\yanjiuyanjiu\&gt;java HelloWorld</span></p>
<p><span style="color: #808080;">Exception in thread “main” java.lang.NoClassDefFoundError: HelloWorld (wrong name: com/yanjiuyanjiu/HelloWorld)<br />
at java.lang.ClassLoader.defineClass1(Native Method)<br />
at java.lang.ClassLoader.defineClassCond(Unknown Source)<br />
at java.lang.ClassLoader.defineClass(Unknown Source)<br />
at java.security.SecureClassLoader.defineClass(Unknown Source)<br />
at java.net.URLClassLoader.defineClass(Unknown Source)<br />
at java.net.URLClassLoader.access$000(Unknown Source)<br />
at java.net.URLClassLoader$1.run(Unknown Source)<br />
at java.security.AccessController.doPrivileged(Native Method)<br />
at java.net.URLClassLoader.findClass(Unknown Source)<br />
at java.lang.ClassLoader.loadClass(Unknown Source)<br />
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)<br />
at java.lang.ClassLoader.loadClass(Unknown Source)<br />
Could not find the main class: HelloWorld.  Program will exit.<br />
Exception in thread “main”</span></p>
<p><span style="color: #808080;">d:\workspace\HelloWorld\bin\com\yanjiuyanjiu\&gt;java -classpath .; HelloWorld<br />
Exception in thread “main” java.lang.NoClassDefFoundError: HelloWorld (wrong name: com/yanjiuyanjiu/HelloWorld)<br />
at java.lang.ClassLoader.defineClass1(Native Method)<br />
at java.lang.ClassLoader.defineClassCond(Unknown Source)<br />
at java.lang.ClassLoader.defineClass(Unknown Source)<br />
at java.security.SecureClassLoader.defineClass(Unknown Source)<br />
at java.net.URLClassLoader.defineClass(Unknown Source)<br />
at java.net.URLClassLoader.access$000(Unknown Source)<br />
at java.net.URLClassLoader$1.run(Unknown Source)<br />
at java.security.AccessController.doPrivileged(Native Method)<br />
at java.net.URLClassLoader.findClass(Unknown Source)<br />
at java.lang.ClassLoader.loadClass(Unknown Source)<br />
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)<br />
at java.lang.ClassLoader.loadClass(Unknown Source)<br />
Could not find the main class: HelloWorld.  Program will exit.<br />
Exception in thread “main”</span></p>
<p><span style="color: #808080;">d:\workspace\HelloWorld\bin\com\yanjiuyanjiu\&gt;cd..</span></p>
<p><span style="color: #808080;">d:\workspace\HelloWorld\bin\com\&gt;cd..</span></p>
<p><span style="color: #808080;">d:\workspace\HelloWorld\bin\&gt;java -classpath .; com/yanjiuyanjiu/HelloWorld    <span style="color: #ff0000;">只有这个成功</span></span></p>
<p><span style="color: #808080;">Hello World!</span></p>
<p><span style="color: #808080;">d:\workspace\HelloWorld\bin\&gt;java -classpath .; com\yanjiuyanjiu\HelloWorld    <span style="color: #ff0000;">换了个斜杠就不行了</span></span></p>
<p><span style="color: #808080;">Exception in thread “main” java.lang.NoClassDefFoundError: com\yanjiuyanjiu\HelloWorld (wrong name: com/yanjiuyanjiu/HelloWorld)<br />
at java.lang.ClassLoader.defineClass1(Native Method)<br />
at java.lang.ClassLoader.defineClassCond(Unknown Source)<br />
at java.lang.ClassLoader.defineClass(Unknown Source)<br />
at java.security.SecureClassLoader.defineClass(Unknown Source)<br />
at java.net.URLClassLoader.defineClass(Unknown Source)<br />
at java.net.URLClassLoader.access$000(Unknown Source)<br />
at java.net.URLClassLoader$1.run(Unknown Source)<br />
at java.security.AccessController.doPrivileged(Native Method)<br />
at java.net.URLClassLoader.findClass(Unknown Source)<br />
at java.lang.ClassLoader.loadClass(Unknown Source)<br />
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)<br />
at java.lang.ClassLoader.loadClass(Unknown Source)<br />
Could not find the main class: com\yanjiuyanjiu\HelloWorld.  Program will exit.<br />
Exception in thread “main”</span></p>
<p><span style="color: #808080;">d:\workspace\HelloWorld\bin\&gt;java -classpath ./com/yanjiuyanjiu/; HelloWorld</span></p>
<p><span style="color: #808080;">Exception in thread “main”java.lang.NoClassDefFoundError: HelloWorld (wrong name: com/yanjiuyanjiu/HelloWorld)<br />
at java.lang.ClassLoader.defineClass1(Native Method)<br />
at java.lang.ClassLoader.defineClassCond(Unknown Source)<br />
at java.lang.ClassLoader.defineClass(Unknown Source)<br />
at java.security.SecureClassLoader.defineClass(Unknown Source)<br />
at java.net.URLClassLoader.defineClass(Unknown Source)<br />
at java.net.URLClassLoader.access$000(Unknown Source)<br />
at java.net.URLClassLoader$1.run(Unknown Source)<br />
at java.security.AccessController.doPrivileged(Native Method)<br />
at java.net.URLClassLoader.findClass(Unknown Source)<br />
at java.lang.ClassLoader.loadClass(Unknown Source)<br />
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)<br />
at java.lang.ClassLoader.loadClass(Unknown Source)<br />
Could not find the main class: HelloWorld.  Program will exit.<br />
Exception in thread “main”</span></p>
<p>在网上搜索了大半天，大部分说是环境 变量，classpath或JDK 版本的问题，还有执行时文件名 class后缀不要。我一一试过，都没有解决。最后无意中换了一下命令符的位置，成功了。总结如下：<br />
1. 环境变量，CLASSPATH当然要设置好，执行时不要带class后缀；<br />
2. 路径中的斜杠用“/”而不是“\”；<br />
3. 命令符的当前目录要在包的起点。比如这里应该在 d:\workspace\HelloWorld\bin\&gt;，如果在 d:\workspace\HelloWorld\bin\com\yanjiuyanjiu\&gt;，反而不行，有点“近水楼台不得月”的意思，不知 道为什么，还请高手解释一下。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yanjiuyanjiu.com/2010/02/15/run-java-class-in-console/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

