如何在当前程序中引入自己的包啊?

yangliyun2008 2008-03-22 03:17:04
如果要引入的包为package students1
可是我在当前程序中用 import students1;总是有错误啊.应该如何设置classpath啊??
大家帮帮忙啊.....
...全文
211 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
ming206 2008-03-24
  • 打赏
  • 举报
回复
先什么都不要导入,在eclipse里:source->add import....
netbean页应该有这功能....................
我想多说两句:你还没有包的概念,,,,,哪里有像你这么打包的?
看看基础吧,不要急着看运行结果........
fy_kenny 2008-03-24
  • 打赏
  • 举报
回复
服了,还是用自动导入好。不会出现莫名其妙的错误。初学者,有时是不明白的。
xxslow 2008-03-24
  • 打赏
  • 举报
回复
哪错了呢?让我学习学习
张振宇 2008-03-23
  • 打赏
  • 举报
回复
楼主的问题描述的不够细致
如果你是命令行编译的,一定要确保包所在的文件目录结构正确:
例如:
project(文件夹)
-- students1(文件夹名称,注意要和你的包名一致)
-- students1包中的所有XXX.java,以及这些java文件的XXX.class
-- XXXX文件夹(你引入students1的那个java文件所在的包)
-- XXXX.java,XXXX.class


楼上所说的方法,也就是把这个包添加到project的build libriary ,这个方法是一定有效的,只要你的程序没问题
老紫竹 2008-03-23
  • 打赏
  • 举报
回复
1 既然你是包,那么先打包成 .jar
2 在你的CLASSPATH 里面,加入这个jar
3 如果是eclipse 则在Build Path 里面增加自定义的类库

老紫竹 2008-03-23
  • 打赏
  • 举报
回复
孺子可教! 你是自己思考过才来问的! 我喜欢这样的!
有空到我的QQ群来看看! 56763840
yangliyun2008 2008-03-23
  • 打赏
  • 举报
回复
老紫竹我错了,我知道该怎么做了,我钻牛脚尖了.不要笑我无知啊.
yangliyun2008 2008-03-23
  • 打赏
  • 举报
回复
一个文件里能有两个main函数吗
yangliyun2008 2008-03-23
  • 打赏
  • 举报
回复
再补充一下,Students1 ,Students2这两个文件夹都存放在D:/myjava文件夹中
老紫竹 2008-03-23
  • 打赏
  • 举报
回复
你放一个文件里算了,然后再测试分包



import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

class Students implements Serializable {
String name;

int[] record = new int[4];

int total;

float avg;

String grade;

public Students() {
}

public String getName() {
return name;
}

public int[] getRecord() {
return record;
}

public int getTotal() {
int s = 0;
for (int i = 0; i < record.length; i++)
s += record[i];
return s;
}

public float getAvg() {
float f = getTotal() / 4f;
return f;
}

public String getGrade() {
String str;
if (avg < 100 && avg > 90)
str = "A";
else if (avg > 80)
str = "B";
else if (avg > 70)
str = "C";
else if (avg > 60)
str = "D";
else
str = "F";
return str;
}
}

public class Students1 {
public static int s = 0;

/** Creates a new instance of Students1 */
public Students1() {
}

public static void main(String[] args) throws Exception {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.println("请顺序输入名字及国语,英语,数学,科学的成绩.(eof:输入完毕)");
String data;
String[] str = new String[5];
FileOutputStream fos = new FileOutputStream("D:\\xi.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
while (true) {
data = br.readLine();
s++;
if (data.equals("eof"))
break;
str = data.split(" ");
Students stu = new Students();
stu.name = str[0];
stu.record[0] = Integer.parseInt(str[1]);
stu.record[1] = Integer.parseInt(str[2]);
stu.record[2] = Integer.parseInt(str[3]);
stu.record[3] = Integer.parseInt(str[4]);
stu.total = stu.getTotal();
stu.avg = stu.getAvg();
stu.grade = stu.getGrade();
oos.writeObject(stu);
}
oos.close();
System.out.println("文件内容");
FileInputStream fis = new FileInputStream("D:\\xi.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
for (int j = 1; j < s; j++) {
Students stud;
stud = (Students) ois.readObject();
System.out.println("Students对象" + j + " " + "{" + stud.name + " " + stud.record[0] + " " + stud.record[1] + " "
+ stud.record[2] + " " + stud.record[3] + " " + stud.total + " " + stud.avg + " " + stud.grade + "}");
}
ois.close();
}
}

class Students2 {
public Students2() {
}

public static void main(String[] args) throws Exception {
// TODO code application logic here
int d = Students1.s;
int[] a = new int[d];
FileInputStream fis = new FileInputStream("D:\\xi.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
Students[] students = new Students[d];
for (int i = 1; i < d; i++) {
students[i] = (Students) ois.readObject();
}
ois.close();
System.out.println("名字 " + "国语 " + "英语 " + "数学 " + "科学 " + "总分 " + "平均分 " + "学分 " + "顺序");
for (int i = 1; i < d; i++) {
int max = i;
for (int j = i; j < d; j++) {
if (students[j].avg > students[i].avg)
max = j;
}
System.out.println(students[max].name + " " + students[max].record[0] + " " + students[max].record[1] + " "
+ students[max].record[2] + " " + students[max].record[3] + " " + students[max].total + " " + students[max].avg
+ " " + students[max].grade + " " + i);
}
}
}
yangliyun2008 2008-03-23
  • 打赏
  • 举报
回复
我是菜鸟,高手们的话我理解不上去,所以到现在还未解决,现在把我的原题和自己写的程序发上去,如果高手们帮我解决了,我愿意把我所有的分都送你们.
问题是:从键盘获取名字,语文,英语,数学,科学的成绩,然后填充到Students对象中,并将对象存如入文件。代码如下:
package students1;
import java.io.*;
class Students implements Serializable{
String name;
int[] record=new int[4];
int total;
float avg;
String grade;
public Students(){}
public String getName(){return name;}
public int[] getRecord(){return record;}
public int getTotal(){
int s=0;
for(int i=0;i<record.length;i++)
s+=record[i];
return s;
}
public float getAvg(){
float f=getTotal()/4f;
return f;
}
public String getGrade(){
String str;
if(avg<100&&avg>90) str="A";
else if(avg>80) str="B";
else if(avg>70) str="C";
else if(avg>60) str="D";
else str="F";
return str;
}
}
public class Students1 {
public static int s=0;
/** Creates a new instance of Students1 */
public Students1() {
}

public static void main(String[] args) throws Exception{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
System.out.println("请顺序输入名字及国语,英语,数学,科学的成绩.(eof:输入完毕)");
String data;
String[] str=new String[5];
FileOutputStream fos=new FileOutputStream("D:\\xi.txt");
ObjectOutputStream oos=new ObjectOutputStream(fos);
while (true){
data=br.readLine();
s++;
if(data.equals("eof")) break;
str=data.split(" ");
Students stu=new Students();
stu.name =str[0];
stu.record[0]=Integer.parseInt(str[1]);
stu.record[1]=Integer.parseInt(str[2]);
stu.record[2]=Integer.parseInt(str[3]);
stu.record[3]=Integer.parseInt(str[4]);
stu.total=stu.getTotal();
stu.avg=stu.getAvg();
stu.grade=stu.getGrade();
oos.writeObject(stu);
}
oos.close();
System.out.println("文件内容");
FileInputStream fis=new FileInputStream("D:\\xi.txt");
ObjectInputStream ois=new ObjectInputStream(fis);
for(int j=1;j<s;j++){
Students stud;
stud=(Students)ois.readObject();
System.out.println("Students对象"+j+" "+"{"+stud.name+" "+stud.record[0]+" "+stud.record

[1]+" "+stud.record[2]+" "+stud.record[3]+" "+stud.total+" "+stud.avg+" "+stud.grade+"}");
}
ois.close();
}

}
这个程序没问题,不过下一个程序就出错了,因为要用第一个程序中的类
2 从上题创建的文件中读取对象,并按平均分降序排列。代码如下:
package students2;
import java.io.*;
import students1.*;
public class Students2 {
public Students2() {
}

public static void main(String[] args) throws Exception{
// TODO code application logic here
int d=Students1.s;
int[] a=new int[d];
FileInputStream fis=new FileInputStream("D:\\xi.txt");
ObjectInputStream ois=new ObjectInputStream(fis);
Students[] students=new Students[d];
for(int i=1;i<d;i++){
students[i]=(Students)ois.readObject();
}
ois.close();
System.out.println("名字 "+"国语 "+"英语 "+"数学 "+"科学 "+"总分 "+"平均分 "+"学

分 "+"顺序");
for(int i=1;i<d;i++) {
int max=i;
for( int j=i;j<d;j++){
if(students[j].avg>students.avg) max=j;
}
System.out.println(students[max].name+" "+students[max].record[0]+" "+students
[max].record[1]+ " "+students[max].record[2]+" "+students[max].record[3]+" "+students
[max].total+" "+students[max].avg+" "+students[max].grade+" "+i);
}
}

}
错误总是提示students1包不存在,如果可以的话您运行一下吧,我在netbeans里运行的,帮我找一下错误的原因啊...
qq7825591 2008-03-23
  • 打赏
  • 举报
回复
如果你把package放在D:\mypackage\students1
那么先设置你的classpath D:\mypackage\students1;
然后再导入 import mypackage.students1.*;

yangliyun2008 2008-03-22
  • 打赏
  • 举报
回复
唉!!十一楼十二楼的老兄,根本就不是那种问题啊,各位高手们来帮帮忙啊!!!!
humphrey923 2008-03-22
  • 打赏
  • 举报
回复
import students1.*;
然后接你的class~~
或者可以试试import students1.[你需要的class名称];
有时候是会有那样的问题
fuyou001 2008-03-22
  • 打赏
  • 举报
回复
import students1.*; 要放在程序的第一行才正确!
yangliyun2008 2008-03-22
  • 打赏
  • 举报
回复
我在NetBeans里编译的,我真的一点头绪都没有啊,我都不知道该怎么弄啊.
老紫竹 2008-03-22
  • 打赏
  • 举报
回复
1 你用什么编译的?
2 如果你用CLASSPATH,难道你用命令行?
3 如果是,你可以把你的class打包成jar,然后放到CLASSPATH里面
Charlemagne 2008-03-22
  • 打赏
  • 举报
回复
应该先把这个包添加到project的build libriary 里面吧!就像你要使用第三方的软件包一样。
yangliyun2008 2008-03-22
  • 打赏
  • 举报
回复
回复6楼:
不是那个原因啊.编译后提示这个包不存在啊,可是确实有students1这个包啊,我都检查好几遍了.真郁闷啊.
liujianliang 2008-03-22
  • 打赏
  • 举报
回复
import students1.*
找不到包里的类可能是因为未编译,选中make一下
加载更多回复(5)

62,623

社区成员

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

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