《java编程艺术》上的chapter5上的例子编译不了!求助ing!!!
我把书上的代码抄上去了(是不是好傻,不要笑我!)编译的时间老是出现Message类和Session类解析不了!(cannot resolve symbol)。我知道这两个方法是mail.jar中的方法。我按照书上所介绍的方法:javac -classpath .;E:\Sun\AppServer\lib\mail.jar;E:\Sun\AppServer\lib\activation.jar EmailClient.java MessagesTableModel.java ConnectDialog.java DownloadingDialog.java MessageDialog.java
我能够在e:\Sun\AppServer\lib下找到这两个文件
请问:出现这种错误是不是没有加载mail.jar和activation.jar的原因?还是另外的缘故?应该怎么样才能编译呢?
就算是很弱智,肯请各位帮忙!!!!在线等待中!!!!!!!!!!!
问题点数:100、回复次数:8Top
1 楼kingfish(工作很忙,很少来csdn...)回复于 2005-04-03 21:03:11 得分 100
import了没?
你最好把代码贴出来Top
2 楼zidanjxnu(有人活着!)回复于 2005-04-03 21:06:30 得分 0
import 有啊,代码太多了吧,Top
3 楼zidanjxnu(有人活着!)回复于 2005-04-03 21:10:12 得分 0
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.*;
import java.mail.*;
import java.mail.internet.*;
import javax.swing.*;
import javax.swing.event.*;
//The E-mail Client.
public class EmailClient extends JFrame{
//Message table's data model.
private MessagesTableModel tableModel;
//Table listing messages.
private JTable table;
//This is the text area for displaying messages.
private JTextArea messageTextArea;
//This is the split panel that holds the messages table and the message view panel.
private JSplitPane splitPane;
//These are the buttons for managing the selected message.
private JButton replyButton,forwardButton,deleteButton;
//Currently selected message in table.
private Message selectedMessage;
//Flag for whether or not a message is being deleted.
private boolean deleting;
//This is the JavaMail session.
private Session session;
//Constructor for E-mail Client.
public EmailClient(){
//Set application title.
setTitle("E-mail Client");
//Set window size.
setSize(640,480);
//Handle window closing events.
addWindowListener(new WindowAdapter(){
public void WindowClosing(WindowEvent e){
actionExit();
}
});
//Set up file menu.
JMenuBar menuBar =new JMenuBar();
JMenu fileMenu=new JMenu("File");
fileMenu.setMnemonic(KeyEvent.VK_F);
JMenuItem fileExitMenuItem=new JMenuItem("Exit",KeyEvent.VK_X);
fileExitMenuItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
actionExit();
}
});
fileMenu.add(fileExitMenuItem);
menuBar.add(fileMenu);
setJMenuBar(menuBar);
//Set up buttons panel.
JPanel buttonPanel=new JPanel();
JButton newButton=new JButton("New Message");
newButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
actionNew();
}
});
buttonPanel.add(newButton);
//Set up messages table.
tableModel=new MessagesTableModel();
table=new JTable(tableModel);
table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
tableSelectionChanged();
}
});
//Allow only one row at a time to be selected.
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);Top
4 楼zidanjxnu(有人活着!)回复于 2005-04-03 21:10:36 得分 0
//Set up E-mails panel.
JPanel emailsPanel=new JPanel();
emailsPanel.setBorder(BorderFactory.createTitledBorder("E-mails"));
messageTextArea=new JTextArea();
messageTextArea.setEdidtable(false);
splitPane=new JSplitPane(JSplitPane.VERTICAL_SPLIT,new JScrollPane(table),new JScrollPane(messageTextArea));
emailsPanel.setLayout(new BorderLayout());
emailsPanel.add(splitPane,BorderLayout.CENTER);
//Set up buttons panel 2.
JPanel buttonPanel2=new JPanel();
replyButton=new JButton("Reply");
replyButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
actionReply();
}
});
replyButton.setEnabled(false);
buttonPanel2.add(replyButton);
forwardButton=new JButton("Forward");
forwardButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
actionForward();
}
});
forwardButton.setEnabled(false);
buttonPanel2.add(forwardButton);
deleteButton=new JButton("Delete");
deleteButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
actionDelete();
}
});
deleteButton.setEnabled(false);
buttonPanel2.add(deleteButton);
//Add panels to display.
getContentPane().setLayout(new BorderLayout());
getContentPane().add(buttonPanel,BorderLayout.NORTH);
getContentPane().add(emailsPanel,BorderLayout.CENTER);
getContentPane().add(buttonPanel2,BorderLayout.SOUTH);
}
//exit this program.
private void actionExit(){
System.exit(0);
}
//Create a new message.
private void actionNew(){
sendMessage(MessageDialog.NEW,null);
}
//Called when table row selection changes.
private void tableSelectionChanged(){
//if not in the middle of deleting a message,set the selected message and display it.
if(!deleting){
selectedMessage=tableModel.getMessage(table.getSelectedRow());
showSelectedMessage();
updateButtons();
}
}
//Reply to a message.
private void actionReply(){
sendMessage(MessageDialog.REPLY,selectedMessage);
}
//Forward a message.
private void actionForward(){
sendMessage(MessageDialog.FORWARD,selectedMessage);
}
//Delete the selected message.
private void actionDelete(){
deleting=true;
try{
//Delete message form server.
selectedMessage.setFlag(Flags.Flag.DELETED,true);
Folder folder=selectedMessage.getFolder();
folder.close(true);
folder.open(Forder.READ_WRITE);
} catch(Exception e){
showError("Unable to delete message." ,false);
}
//Delete message form table.
tableModel.deleteMessage(table.getSelectedRow());
//Update GUI.
messageTextArea.setText("");
deleting=false;
selectMessage=null;
updateButtons();
}
//Send the specified message.
private void sendMessage(int type,Message message){
//Display message dialog box to get message values.
MessageDialog dialog;
try{
if(!dialog.display()){
//Return if dialog box was cancelled.
return;
}
}catch(Exception e){
showError("Unable to send message.",false);
return;
}
try{
//Create a new message with values form dialog box.
Message newMessage=new MimeMessage(session);
newMessage.setFrom(new InternetAddress(dialog.getFrom()));
newMessage.setRecipient(Messge.RecipientType.TO,new InternetAddress(dialog.getTo()));
newMessage.setSubject(dialog.getSubject());
newMessage.setSendDate(new Date());
newMessage.setText(dialog.getContent());
//Send new message.
Transport.send(newMessage);
} catch(Exception e){
showError("Unable to send message.",false);
}
}Top
5 楼kingfish(工作很忙,很少来csdn...)回复于 2005-04-03 21:18:03 得分 0
应该是:
import javax.mail.*;
import javax.mail.internet.*;
===Top
6 楼zidanjxnu(有人活着!)回复于 2005-04-03 21:20:56 得分 0
==
这样啊,我看现在可不可以了,Top
7 楼zidanjxnu(有人活着!)回复于 2005-04-03 21:26:36 得分 0
谢谢,是这样的,我粗心!!!!!
还有再问你一个问题:书上说可以更新classpath环境变量设置。就是不用javac -classpath====这么长了!??Top
8 楼kingfish(工作很忙,很少来csdn...)回复于 2005-04-03 21:35:19 得分 0
把那几个jar加入环境变量中的CLASSPATH中Top




