关于JAVA运行的简单问题 我在D:\TEST目录下创建一个helloworld.java在DOS下编译:javac d:\TEST\helloworld.java在运行时用:java d:\TEST\helloworld 为什么不可以呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java -classpath d:\TEST; helloworld 楼主可以查看下javac命令提示,进入cmd直接javac然后回车就行了 一般,JVM会自动查找路径,你在系统的PATH中添加好JAVA路径,然后直接用:javac helloworld.javajava helloworld 就可以了 我在D:\TEST目录下创建一个helloworld.java 在DOS下编译:javac d:\TEST\helloworld.java 编译生成helloworld.class;在运行时用:java d:\TEST\helloworld 为什么不可以呢? java -classpath d:\TEST; helloworld 在JAVA中的路径表示不同而已,不建议指定路径来执行,还是设置环境变量要规范些. 有时候不能java *.class ,命令 java *才可以运行。 看看这个吧,你就知道为什么这么设定了,是为了程序更好的兼容性...这是因为java只会在classpath中找有关java的东西,不会理会path,只有这样才能跨平台...你如果非想那样运行class,那就根据classpath,把它当作包来运行好了。classpath有点类似path,但不完全是。一般我们在一个类中声明包名:如package mypackage.first;import java.io.*;public class myfirst { ....}那么就是把myfirst这个类放进mypackage里的first里面。大家可以把mypackage和first当作目录,但是你不能在mypackage\first里执行java myfirst 。因为这样java会认为你是在找默认目录(即classpath)里找myfirst类,而不是mypackage.first里面的myfirst类。什么意思呢?这是因为java只会在classpath中找有关java的东西,不会理会path。只有这样才能跨平台。classpath中加个.(点)表示当前目录,即在当前目录寻找java的类,不理会其他目录。(注意:java本身的类,如java.io.*;java awt.*;等等会自动包括进去,不用指定)大家也许认为这很麻烦,但这非常有用,如果你要管理你的文件时。比如说我有10个EJB的client,分别对应不同的EJB,那么你可以把这10个client分别放入各自的EJB包中,以免混乱。如:myejb.helloworld.client;myejb.firstEJB.client; 等等。举个例子:classpath=C:\Project;D:\;你在C:\Project里有first,helloworld目录,里面相应有各自的client文件(已编译)。给出first目录的client.java作例:package first;import java.io.*;public class client{public static void main(String args[]){System.out.println("first.client invoked!!");}}编译:在 C:\Project\first> javac *.java那么你就可以在任何DOS目录执行java first.client ,这都会启动这个client,而不会启动helloworld里的,或其他的。如果你在classpath中加了.(点), 如classpath=.;D:\;那么你必须要在C:\Project>里面执行上述语句,因为这表示在D:\和当前目录寻找,否则java会报错 ClassNoFoundException 。这点要注意。 关于电阻组合的的一个算法问题 感觉自己遇到了瓶颈,希望高手能指点一下 THINK IN JAVA 疑惑 JAVA的MouseListener是不是有问题啊???? import org.apache.tomcat.core.*; 编译通不过? 老大门! 如何遍历出目录下的所有文件及其子目录下的所有文件 ? DatagramPacket构造函数的问题 api 各位兄弟,急救我是初学者,关于JBULID的问题? java 操作数据库出现的内存溢出,求大神指教! actionPerformed 怎么Math类和Commons math里好像都没有微积分计算的功能啊
javac helloworld.java
java helloworld
就可以了
在DOS下编译:javac d:\TEST\helloworld.java
编译生成helloworld.class;
在运行时用:java d:\TEST\helloworld 为什么不可以呢?
一般我们在一个类中声明包名:如
package mypackage.first;
import java.io.*;
public class myfirst { ....}那么就是把myfirst这个类放进mypackage里的first里面。大家可以把mypackage和first当作目录,但是你不能在mypackage\first里执行java myfirst 。因为这样java会认为你是在找默认目录(即classpath)里找myfirst类,而不是mypackage.first里面的myfirst类。什么意思呢?
这是因为java只会在classpath中找有关java的东西,不会理会path。只有这样才能跨平台。
classpath中加个.(点)表示当前目录,即在当前目录寻找java的类,不理会其他目录。
(注意:java本身的类,如java.io.*;java awt.*;等等会自动包括进去,不用指定)大家也许认为这很麻烦,但这非常有用,如果你要管理你的文件时。比如说我有10个EJB的client,分别对应不同的EJB,那么你可以把这10个client分别放入各自的EJB包中,以免混乱。如:
myejb.helloworld.client;
myejb.firstEJB.client; 等等。举个例子:
classpath=C:\Project;D:\;
你在C:\Project里有first,helloworld目录,里面相应有各自的client文件(已编译)。
给出first目录的client.java作例:
package first;
import java.io.*;
public class client
{
public static void main(String args[])
{
System.out.println("first.client invoked!!");
}
}
编译:在 C:\Project\first> javac *.java
那么你就可以在任何DOS目录执行java first.client ,这都会启动这个client,而不会启动helloworld里的,或其他的。如果你在classpath中加了.(点), 如classpath=.;D:\;
那么你必须要在C:\Project>里面执行上述语句,因为这表示在D:\和当前目录寻找,否则java会报错 ClassNoFoundException 。这点要注意。