使用Notepad ++编译Java代码

时间:2010-11-30 12:59:47

标签: java notepad++

我一直在尝试将Notepad ++设置为一个小Java环境,主要用于学习Java,因为我在使用NetBeans时遇到一个简单的程序有些困难,遗憾的是有关设置Notepad ++以调用Java代码的所有建议没有用。

我猜notepad ++已经改变,或者Java开发工具包已被大量修改,因为我使用的所有示例都会导致错误,即使几乎没有错误的余地。

开始我找到了这个网站: http://blog.sanaulla.info/2008/07/25/using-notepad-to-compile-and-run-java-programs/

这是运行Javac来编译代码的代码:

javac “$(FILE_NAME)”

java “$(NAME_PART)”

运行生成的字节代码,但这完全没有成功。 Java已正确设置,我可以通过CMD调用Java程序来完成它的工作。

使用名为npp的插件并通过F6调用并使用此代码运行(在注释中给出)成功将Java程序编译为正确的.class文件,但是命令在运行程序时失败

cd “$(CURRENT_DIRECTORY)”
javac $(FILE_NAME)
java $(NAME_PART)
Notepad ++中控制台的

错误是:

java.lang.NoClassDefFoundError: first
Caused by: java.lang.ClassNotFoundException: first
  at java.net.URLClassLoader$1.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: first.  Program will exit.
Exception in thread "main"

我认为设置Notepad ++来编译和运行代码会很容易和有趣,但似乎互联网上的所有文档都已过时,因为没有任何作用。

我想从Notepad ++

中编写和运行Java代码

我可以使用CMD,但我更愿意将它集成到notepad ++中

感谢您提供任何可能的帮助。干杯:)

编辑:我正在使用最新版本的Java,记事本++和Windows 7

编辑2:代码:

 //A Very Simple Example
 class ExampleProgram {

   public static void main(String[] args){

        System.out.println("I'm a Simple Program");
   }
 }

11 个答案:

答案 0 :(得分:16)

与Eclipse或Netbeans等IDE相关的“学习曲线”最初主要涉及您已经拥有的内容 - 设置类路径,环境变量等知识。而不是Notepad ++(我喜欢它,但它不是为Java制作的),我建议使用Eclipse,特别是如果你有一台可怕的PC(它有点内存饥饿)。除了设置路径之外,之后你就可以开始摇滚了。

Eclipse正在积极开放地开发,是目前记录最多的IDE之一。教程必将正常工作:)。但说真的,这很不错。然后,当您想要扩展到Java开发或其他类型的Java编程时,只需加载所需的加载项,您就会大笑。它还支持调试,Notepad ++当然无法与之竞争。

答案 1 :(得分:2)

可能将最后一行更改为:

java -cp . $(NAME_PART)

会为你效劳。问题是你没有设置类路径。

Notepad ++可以用于编译单个文件项目。除此之外,您将需要一个IDE或至少与ant集成而不是Java编译器。

答案 2 :(得分:1)

在java命令中设置类路径,如下所示:

java -classpath “$(CURRENT_DIRECTORY)” “$(NAME_PART)”

答案 3 :(得分:1)

虽然我确信你必须使用IDE(NetBeans,Eclipse,IntelliJ IDEA(我使用)),但我认为了解和了解你的小例子中的失败总是好的。 使用IDE,可以配置编译和运行时环境,但作为开发人员,了解隐藏的基本概念非常重要。 无论如何,

根据您发布的链接,以下是您必须定义的环境变量

FULL_CURRENT_PATH: C:\Documents and Settings\Administrator\My Documents\JavaP\ExampleProgram.java
CURRENT_DIRECTORY: C:\Documents and Settings\Administrator\My Documents\JavaP\
FILE_NAME: ExampleProgram.java
NAME_PART: ExampleProgram
EXT_PART:java

确保根据这些设置命名所有设置,即:

- your source file is under C:\Documents and Settings\Administrator\My Documents\JavaP\
- your source file is named ExampleProgram.java

答案 4 :(得分:0)

我同意接受的答案但我有时使用Textpad来快速编写/编译/运行小型Java程序。 Textpad具有此内置功能(工具/外部工具)。 如果您没有看到此选项,我认为您必须转到配置/首选项/工具并添加它们。 然后你可以按Ctrl-1编译,然后按Ctrl-2运行。 这对于非常小的快速测试,没有库或任何东西都很有用。

答案 5 :(得分:0)

您可以按照上面的建议使用eclipse,只需创建一个java项目。创建项目后,只需将要使用的java文件拖放到项目中,然后选择链接文件选项。这样eclipse将创建文件的副本并将其链接到您的文件,这意味着您对一个文件所做的每个更改都将被复制到另一个文件中。

答案 6 :(得分:0)

我最近遇到了Windows 7 64位的这种情况。 Notepad ++是一个32位程序,因此Windows已启用"文件系统重定向"根据{{​​3}},它及其插件(包括NppExec)。我还安装了最新的64位JDK 8.xx,但安装了早期的32位JRE 7.xx。

现在,JRE 7.xx安装程序在其C:\ Windows \ system32中放置了一个java.exe副本(或者我没有检查过硬链接) - 实际上是C:\ Windows \ SysWOW64 \ java.exe的。这不在像cmd.exe这样的64位应用程序的PATH中,而是在32位应用程序的(重定向)PATH中。

然后在安装JDK 8.xx之后,安装程序没有更新我的PATH,因此我将JDK安装位置添加到PATH的末尾。从那时起,我观察到的行为是:

  • 从Windows命令提示符(cmd.exe,64位) - javac.exe和java.exe都来自JDK 8.xx位置(C:\ Program Files \ Java \ jdk1.8.0_05 \ bin) )。
  • 在Notepad ++(32位)中,javac.exe的JDK版本被调用,但java.exe实际上是从C:\ Windows \ SysWOW64 \ java.exe运行 - 导致这种加载问题。

修复是更新或删除32位JRE。

答案 7 :(得分:0)

您可以尝试为jdk bin路径添加系统环境变量。当我第一次在notepad ++上运行java时,我也遇到了类似的问题。

答案 8 :(得分:0)

你可以在" run"中使用这个小代码记事本++模块:

<script>
    $(document).ready(function(){
        $(".scroll").pullToRefresh({
             refresh:200
        })
        .on("refresh.pulltorefresh", function (){
            location.reload();
        });
    });
</script>

<div class="scroll">
    <div class="refresh">
        Pull To Refresh 
    </div>
    <div class="container">
        content
    </div>        
</div>

注意:这是他们用于在notepad ++中运行python的几乎相同的代码解决方案 如本主题中所述:How to Execute a Python File in Notepad ++?

答案 9 :(得分:0)

我发现这个link很有用。

但是,NppExec似乎带有自己的JRE,所以我已将脚本更改为此(意味着您需要对Java位置进行硬编码):

cd $(CURRENT_DIRECTORY)
C:\App\Java\jdk1.8.0_112\bin\java -version
C:\App\Java\jdk1.8.0_112\bin\javac $(FILE_NAME)
C:\App\Java\jdk1.8.0_112\bin\java $(NAME_PART)

答案 10 :(得分:0)

cmd /k "cd /D "$(CURRENT_DIRECTORY)" & javac "$(FILE_NAME)" & java "$(NAME_PART)""

在上面添加运行命令 成功了!