当前位置: 技术问答>java相关
这是环境变量问题吗?(元气大伤,分值不高,希望多多帮忙)
来源: 互联网 发布时间:2015-05-16
本文导语: 我是java初学者,一直用texpad作编辑工具。 现在有类似形式几个public类,每个类作为一个编辑单元(为一个java源文件)。 public class A{} public class B{} public class C{} public class mainFunction{ public static void main(String...
我是java初学者,一直用texpad作编辑工具。
现在有类似形式几个public类,每个类作为一个编辑单元(为一个java源文件)。
public class A{}
public class B{}
public class C{}
public class mainFunction{
public static void main(String[] args){
JFrame mainFrame=new A();//class is a subclass of JFrame
mainFrame.setVisible(true);
……
}
}
文件A.java,B.java,C.java,mainFunction.java都在同一目录下。win98系统。
它们之间是包含关系或依赖关系(缺谁都不行),我昨天装了j2sdk1.4.0后,在textpad中对文件mainFunction.java进行编译,结果只报一个错cannot resolve symbol symbol : class A,并不象我预料的textpad会帮我将A,B,C,mainFunction中的所有错误都提示出来,而我以前用的是jdk1.2,情况就非常良好。我昨天设置了n次环境变量textpad都没出现想要的情形。
最后我将A,B,C装在一个util文件夹里,在A,B,C每个源文件前面冠以package util; util与mainFunction.java在同一目录下,并在mainFunction.java前面加上一句import util.*;结果报错package util does not exist。我实在不行了,msdos下加了一条语句;set classpath=d:bisheutil(d:bisheutil就是 package util所在目录),再编译,问题依旧,用set classpath=d:bishe也不行。而这种情形在以前用jdk1.2时还没有出现过。请问在1.4版该如何打包呢?
真不知道这些毛病是怎么回事儿,请有经验者不吝赐教吧,谢了!
现在有类似形式几个public类,每个类作为一个编辑单元(为一个java源文件)。
public class A{}
public class B{}
public class C{}
public class mainFunction{
public static void main(String[] args){
JFrame mainFrame=new A();//class is a subclass of JFrame
mainFrame.setVisible(true);
……
}
}
文件A.java,B.java,C.java,mainFunction.java都在同一目录下。win98系统。
它们之间是包含关系或依赖关系(缺谁都不行),我昨天装了j2sdk1.4.0后,在textpad中对文件mainFunction.java进行编译,结果只报一个错cannot resolve symbol symbol : class A,并不象我预料的textpad会帮我将A,B,C,mainFunction中的所有错误都提示出来,而我以前用的是jdk1.2,情况就非常良好。我昨天设置了n次环境变量textpad都没出现想要的情形。
最后我将A,B,C装在一个util文件夹里,在A,B,C每个源文件前面冠以package util; util与mainFunction.java在同一目录下,并在mainFunction.java前面加上一句import util.*;结果报错package util does not exist。我实在不行了,msdos下加了一条语句;set classpath=d:bisheutil(d:bisheutil就是 package util所在目录),再编译,问题依旧,用set classpath=d:bishe也不行。而这种情形在以前用jdk1.2时还没有出现过。请问在1.4版该如何打包呢?
真不知道这些毛病是怎么回事儿,请有经验者不吝赐教吧,谢了!
|
你要仔细看看jdk文档中关于classpath设置的问题了,详细的你去看文档我这里只是简单说一下:
如果你有一个package com.zosatapo的话,我假设路径为c:appcomzosatapo;
同时这个package中有一个类A,其声明定义为:
package com.zosatapo;
public class A{/*implementations*/}
编译以后class的路径为:
c:appcomzosatapoA.class
同时我假设你还有一个jar文件中的classpath 你也需要,这个jar文件路径为:D:jappmy.jar
这个时候你在classpath中如果要包含这个包的话,应该是这样写:
classpath=%classpath%;c:app;d:jappmy.jar;.;
注意只要写到包含包的目录即可,而不是写到c:appcomzosatapo;
//-------------------------------------------------------------
上面可能只是你问题的一部分而已,
同时你应该在classpath中包含你使用到所有类或者jar文件的路径
我的建议是还要包含当前路径,就是上面写的那个“.”
最好把jdk目录下面的jar全部包含在路径中,如果你不是很清楚他们的用途
如果这些还没有解决问题的,你就要进一步看看javac,java的参数说明
如果你有一个package com.zosatapo的话,我假设路径为c:appcomzosatapo;
同时这个package中有一个类A,其声明定义为:
package com.zosatapo;
public class A{/*implementations*/}
编译以后class的路径为:
c:appcomzosatapoA.class
同时我假设你还有一个jar文件中的classpath 你也需要,这个jar文件路径为:D:jappmy.jar
这个时候你在classpath中如果要包含这个包的话,应该是这样写:
classpath=%classpath%;c:app;d:jappmy.jar;.;
注意只要写到包含包的目录即可,而不是写到c:appcomzosatapo;
//-------------------------------------------------------------
上面可能只是你问题的一部分而已,
同时你应该在classpath中包含你使用到所有类或者jar文件的路径
我的建议是还要包含当前路径,就是上面写的那个“.”
最好把jdk目录下面的jar全部包含在路径中,如果你不是很清楚他们的用途
如果这些还没有解决问题的,你就要进一步看看javac,java的参数说明