使用命令行导入Java中的自定义类

问题描述 投票:0回答:1

我在同一文件夹中写了几个类,这是层次结构:

bookpirate/

-Window.java

-Navigator.java

-NavEventHandler.java

所有文件的开头都有“ package bookpirate;”

这是我导入它们的方式:

Navigator类:

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);

    }
}

NavEventHandler类:

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)
    {

    }
}

这是我编译NavEnventHandler时得到的内容:

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添加到文件中

我试图尽量简洁

我在同一文件夹中写了几个类,这是层次结构:bookpirate / -Window.java -Navigator.java -NavEventHandler.java所有文件都有“ package bookpirate包;”在开始的地方是...

java class import terminal compilation
1个回答
0
投票

您不必从同一包中导入类。Why don't I have to import a class I just made to use it in my main class? (Java)

您在任何类中都没有main方法,因此无法以这种方式运行它。更多:Can we execute a java program without a main() method?

© www.soinside.com 2019 - 2024. All rights reserved.