使用命令行导入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方法,为了简洁起见,我没有包含它们(现在我编辑了它们的全部内容)。我不必导入它们,这很好,但是为什么会出现错误“找不到符号”?您粘贴了同一个类两次