Notepad ++を少しJava環境として、主に学習のためにJava NetBeans、残念ながらJavaコードを呼び出すためのNotepad ++のセットアップに関するアドバイスはすべて機能していません。
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、notepad ++を使用しており、Windows 7を使用しています
編集2:コード:
//A Very Simple Example
class ExampleProgram {
public static void main(String[] args){
System.out.println("I'm a Simple Program");
}
}
EclipseやNetbeansなどのIDEに関連付けられている「学習曲線」には、最初はほとんどの場合、クラスパス、環境変数などの設定に関する知識がすでに含まれています。 Notepad ++の代わりに(私は大好きですが、Java用に「作られた」ものではありません)、特にPCがおかしい(メモリが少し空いている)場合は、Eclipseをお勧めします。パスを設定する以外に、ロックする準備が整います。
そして、積極的かつオープンに開発されているEclipseは、最も文書化されたIDEの1つです。チュートリアルはそのために正しく動作するようにバインドされています:)。しかし、真剣に、それはかなり良いです。そして、Android Javaでの開発、または他の種類のJavaプログラミングに展開する場合、必要なアドインをロードするだけです。また、デバッグもサポートしていますが、Notepad ++のようなものは確かに競合できません。
おそらく最後の行を次のように変更します:
Java -cp . $(NAME_PART)
あなたのために働くでしょう。問題は、クラスパスを設定していないことです。
Notepad ++は、単一のファイルプロジェクトのコンパイルに適しています。これ以外の場合は、IDE、または少なくともJavaコンパイラの代わりに ant と統合する必要があります。
次のようにJavaコマンドでクラスパスを設定します。
Java -classpath “$(CURRENT_DIRECTORY)” “$(NAME_PART)”
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
最近、Windows 7 64ビットでこの状況に遭遇しました。 Notepad ++は32ビットプログラムであるため、 http://msdn.Microsoft.com/en-us/library/windowsに従って、Windowsはそのファイルシステムリダイレクトとそのプラグイン(NppExecを含む)を有効にしました/desktop/aa384187(v=vs.85).aspx 。また、最新の64ビットJDK 8.xxがインストールされていましたが、以前の32ビットJRE 7.xxがインストールされていました。
JRE 7.xxインストーラーは、C:\ Windows\system32(実際にはC:\ Windows\SysWOW64\Java.exe)にJava.exeのコピー(またはチェックしていないハードリンク)を配置しました。これは、cmd.exeのような64ビットアプリケーションのPATHではなく、32ビットアプリケーションの(リダイレクトされた)PATHにあります。
その後、JDK 8.xxをインストールした後、インストーラーがPATHを更新しなかったため、JDKのインストール場所をPATHの最後に追加しました。その時点から私が観察した動作は次のとおりです。
修正は、32ビットJREを更新または削除することでした。
上記のようにEclipseを使用して、Javaプロジェクトを作成します。プロジェクトを作成したら、使用するJavaファイルをドラッグアンドドロップします。これにより、Eclipseはファイルのコピーを作成してファイルにリンクします。つまり、1つのファイルに加えたすべての変更が他のファイルにコピーされます。
この小さなコードをメモ帳++の「実行」モジュールで使用できます。
cmd /k "cd /D "$(CURRENT_DIRECTORY)" & Java "$(NAME_PART)""
注:これは、このトピックで説明したように、notepad ++でpythonを実行するのに使用したコードソリューションとほぼ同じです。 How to Execute a Python Fileメモ帳で++?
私はこれを見つけました link 役に立ちました。
ただし、NppExecには独自のJREが付属しているようなので、スクリプトをこれに変更しました(ハードコードJava location)が必要なことを意味します):
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)
私は受け入れられた答えに同意しますが、時々 Textpad を使用して小さなプログラムをすばやく作成/コンパイル/実行しますJavaプログラム。Textpadにはこの組み込みツール(ツール/外部ツール)このオプションが表示されない場合、Configure/Preferences/Toolsに移動して追加する必要があると思うので、Ctrl-1を押してコンパイルし、Ctrl-2を押して実行します。 、ライブラリなどはありません。
私の状況はあなたの状況と似ていますが、
Cmdで「hello world」アプリケーションを正しくコンパイルして実行しましたが、notepad ++では、コンパイルしかできませんが、クラスファイルは実行できません。
理由は、jdk1.7をインストールし、[〜#〜] path [〜#〜]をjdk1.7に設定してから、jdk1.6もインストール済み 。そのため、jdk1.6インストーラーはJava.exeを%systemroot%\ System32(x64環境ではSySWOW64)に追加しますが、javac.exeは追加しません。
Cmdモデムでは、システムは[〜#〜] path [〜#〜]でjavac.exeおよびJava.exeを呼び出しましたが、notepad ++は[〜#〜] pathでjavac.exeを呼び出しました[〜#〜] system32にはjavacがなく、system32にはJava.exeがないためです。 (notepad ++で「javac -version」および「Java -version」を実行して確認できます)
だからsystem32のJava.exeを削除し、nppをコンパイルして完全に実行します。
これが誰にも役立つことを願っています。
Jdk binパスのシステム環境変数を追加してみることができます。 Notepad ++で初めてJavaを実行したときに、同様の問題が発生しました。