使用命令行导入Java中的自定义类
我在同一个文件夹中编写了几个类,下面是层次结构:使用命令行导入Java中的自定义类,java,class,import,terminal,compilation,Java,Class,Import,Terminal,Compilation,我在同一个文件夹中编写了几个类,下面是层次结构: bookpirate/ -Window.java -Navigator.java -NavEventHandler.java 所有文件开头都有“PackageBookPirate;”“ 下面是我如何导入它们的: 导航器类: package bookpirate; import javax.swing.*; import java.awt.*; import bookpirate.NavEventHandler; public clas
bookpirate/
-Window.java
-Navigator.java
-NavEventHandler.java
所有文件开头都有“PackageBookPirate;”“
下面是我如何导入它们的:
导航器类:
package bookpirate;
import javax.swing.*;
import java.awt.*;
import bookpirate.NavEventHandler;
public class Navigator
{
private JPanel panel;
public JTextField page;
public JButton pageBack;
public JButton addBefore;
public JButton addAfter;
public JButton pageForward;
public JButton removePage;
public JButton undo;
public JTextField getPage() { return page; }
public JButton getPageBack() { return pageBack; }
public JButton getAddBefore() { return addBefore; }
public JButton getAddAfter() { return addAfter; }
public JButton getPageForward() { return pageForward; }
public JButton getRemovePage() { return removePage; }
public JButton getUndo() { return undo; }
public int nOfPages;
public int getNOfPages() { return nOfPages; }
public static void main(String[] args)
{
new Navigator();
}
public Navigator()
{
setListeners();
System.out.println("Created NavEventHandler");
}
private void setListeners()
{
NavEventHandler handler = new NavEventHandler(this);
page.addActionListener(handler);
pageBack.addActionListener(handler);
addBefore.addActionListener(handler);
addAfter.addActionListener(handler);
pageForward.addActionListener(handler);
removePage.addActionListener(handler);
undo.addActionListener(handler);
}
}
package bookpirate;
import java.awt.event.*;
import javax.swing.*;
import bookpirate.Navigator;
public class NavEventHandler implements ActionListener
{
Navigator navigator;
public NavEventHandler(Navigator nav)
{
navigator = nav;
System.out.println("Created NavEventHandler");
}
public void actionPerformed(ActionEvent event)
{
String string = "actionPerformed";
//if(event.getSource() instanceof Navigator)
//{
if(event.getSource() == navigator.getPageBack())
{ string = "pageBack";}
/*else if(event.getSource() == Navigator.getAddBefore())
{ string = "addBefore";}
else if(event.getSource() == Navigator.getAddAfter())
{ string = "addAfter";}
else if(event.getSource() == Navigator.getPageForward())
{ string = "pageForward";}
else if(event.getSource() == Navigator.getRemovePage())
{ string = "removePage";}
else if(event.getSource() == Navigator.getUndo())
{ string = "undo";}
else if(event.getSource() == Navigator.getPage())
{ string = "page " + event.getActionCommand();}*/
string += " gotSource";
//}
System.out.println(string);
}
public static void main(String[] args)
{
}
}
NavEventHandler类:
package bookpirate;
import javax.swing.*;
import java.awt.*;
import bookpirate.NavEventHandler;
public class Navigator
{
private JPanel panel;
public JTextField page;
public JButton pageBack;
public JButton addBefore;
public JButton addAfter;
public JButton pageForward;
public JButton removePage;
public JButton undo;
public JTextField getPage() { return page; }
public JButton getPageBack() { return pageBack; }
public JButton getAddBefore() { return addBefore; }
public JButton getAddAfter() { return addAfter; }
public JButton getPageForward() { return pageForward; }
public JButton getRemovePage() { return removePage; }
public JButton getUndo() { return undo; }
public int nOfPages;
public int getNOfPages() { return nOfPages; }
public static void main(String[] args)
{
new Navigator();
}
public Navigator()
{
setListeners();
System.out.println("Created NavEventHandler");
}
private void setListeners()
{
NavEventHandler handler = new NavEventHandler(this);
page.addActionListener(handler);
pageBack.addActionListener(handler);
addBefore.addActionListener(handler);
addAfter.addActionListener(handler);
pageForward.addActionListener(handler);
removePage.addActionListener(handler);
undo.addActionListener(handler);
}
}
package bookpirate;
import java.awt.event.*;
import javax.swing.*;
import bookpirate.Navigator;
public class NavEventHandler implements ActionListener
{
Navigator navigator;
public NavEventHandler(Navigator nav)
{
navigator = nav;
System.out.println("Created NavEventHandler");
}
public void actionPerformed(ActionEvent event)
{
String string = "actionPerformed";
//if(event.getSource() instanceof Navigator)
//{
if(event.getSource() == navigator.getPageBack())
{ string = "pageBack";}
/*else if(event.getSource() == Navigator.getAddBefore())
{ string = "addBefore";}
else if(event.getSource() == Navigator.getAddAfter())
{ string = "addAfter";}
else if(event.getSource() == Navigator.getPageForward())
{ string = "pageForward";}
else if(event.getSource() == Navigator.getRemovePage())
{ string = "removePage";}
else if(event.getSource() == Navigator.getUndo())
{ string = "undo";}
else if(event.getSource() == Navigator.getPage())
{ string = "page " + event.getActionCommand();}*/
string += " gotSource";
//}
System.out.println(string);
}
public static void main(String[] args)
{
}
}
以下是编译NavenvenHandler时得到的结果:
C:\Users\...\bookpirate>javac NavEventHandler.java
NavEventHandler.java:5: error: cannot find symbol
import bookpirate.Navigator;
^
symbol: class Navigator
location: package bookpirate
NavEventHandler.java:9: error: cannot find symbol
Navigator navigator;
^
尽管我可以将它们编译在一起而不会出错
C:\Users\Falangrater\Desktop\Files\Programming\bookpirate>javac NavEventHandler.java Navigator.java Window.java
C:\Users\Falangrater\Desktop\Files\Programming\bookpirate>
但我不能一起或分开运行它们
C:\Users\Falangrater\Desktop\Files\Programming\bookpirate>java Window Navigator NavEventHandler
Error: Could not find or load main class Window
C:\Users\Falangrater\Desktop\Files\Programming\bookpirate>
我已尝试创建manifest.txt文件
Main-Class: Window
我无法将.mf添加到文件中
我尽量简洁您不必从同一个包中导入类。 您的任何类中都没有main方法,因此不能以这种方式运行它。 更多: 编辑: 您只需移动到父目录并按如下方式调用它:
java bookpirate.Navigator
或java bookpirate/Navigator
这就是问题所在:
我把课程放在包里。因此,我需要在bookpirate的父文件夹中运行该程序:
/Programming> java bookpirate/Window
或
而不是:
/bookpirate> java Window
@maszter如何在不导入的情况下使用它们?I get error:找不到符号,正如您在NavEventHandler代码块中看到的,它们都有void main方法,为了简洁起见,我没有包含它们(现在我编辑了它们的全部内容)。我不必导入它们,这很好,但是为什么会出现错误“找不到符号”?您粘贴了同一个类两次