【问题标题】:Java Could not find main class Error after running by Notepad++记事本++运行后Java找不到主类错误
【发布时间】:2016-08-11 10:52:19
【问题描述】:

在通过 Notepad++ 脚本运行 java 之前,我在 Win 7 Ultimate 中只使用文件名(例如 javac program.java 和 java 程序)运行 java by Command Prompt

使用 Notepad++ 脚本并将 Java 更新到版本 jdk-8u77-windows-i586 后,我只能通过 Notepad++ 运行 java。我明白了

错误:无法找到或加载主类 CopyFile

当我在命令提示符下运行它时。但是我可以在命令行中使用'javac'来编译java程序。

下面是我的 Notepad++ 脚本,它在其中运行 java 程序。

NPP_SAVE
cd "$(CURRENT_DIRECTORY)" 
"C:\Program Files (x86)\Java\jdk1.8.0_77\bin\javac" $(FILE_NAME)
"C:\Program Files (x86)\Java\jdk1.8.0_77\bin\java"  -classpath "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

我已经检查了环境变量并且所有的都设置好了。我在下面给出了它们。

类路径

C:\Program Files (x86)\Java\jdk1.8.0_77\bin;C:\Program Files (x86)\Java\jre1.8.0_77\bin

JAVA_HOME

C:\Program Files (x86)\Java\jdk1.8.0_77

路径

C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Java\jdk1.8.0_77\bin;C:\Program Files (x86)\Java\apache-maven-3.3.9\bin;C:\xampp\ImageMagick-6.9.1-Q16;C:\Python27\;C:\Python27\Scripts;C:\Python27\DLLs;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;D:\Dhay\Tasks by me\Firefox addon job\addon-sdk-1.17\bin;C:\Program Files\MySQL\MySQL Server 5.1\bin;C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin;C:\Program Files (x86)\Common Files\lenovo\easyplussdk\bin;C:\Program Files (x86)\QuickTime\QTSystem\

下面是java文件。

import java.io.*;
class CopyFile
{
    public static void main (String args[]) throws IOException
    {
        int i;
        FileInputStream fin = null;
        FileOutputStream fout = null;
        if(args.length != 2)
        {
            System.out.println("Usage: CopyFile from to");;
            return;
        }
        try
        {
            fin = new FileInputStream(args[0]);
            fout = new FileOutputStream(args[1]);
            do {
                i = fin.read();
                if(i != -1) fout.write(i);
            } while(i != -1);
        } catch(IOException e){
            System.out.println("I/O Error: " + e);
        } finally {
            try 
            {
                if(fin != null) fin.close();
            } catch(IOException e2)
            {
                System.out.println("Error Closing Input file");
            }
            try
            {
                if(fout != null) fout.close();
            } catch(IOException e2)
            {
                System.out.println("Error Closing Output File");
            }
        }
    }
}

即使我可以通过命令行在命令行中运行它

java -classpath . CopyFile

我只是好奇可能出了什么问题。

【问题讨论】:

  • 如果您尝试从命令行运行,您会遇到什么错误?
  • 我收到Error: Could not find or load main class filename
  • 粘贴你的java文件

标签: java notepad++ command-prompt


【解决方案1】:

你的当前目录不在你的类路径中,所以java找不到你的类, 然后你告诉java,通过这个去当前目录找到CopyFile:

java -classpath . CopyFile

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 2012-05-15
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    相关资源
    最近更新 更多