web-dev-qa-db-ja.com

Notepad ++を使用してJavaコードをコンパイルします

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");
   }
 }
25
Joseph

EclipseやNetbeansなどのIDEに関連付けられている「学習曲線」には、最初はほとんどの場合、クラスパス、環境変数などの設定に関する知識がすでに含まれています。 Notepad ++の代わりに(私は大好きですが、Java用に「作られた」ものではありません)、特にPCがおかしい(メモリが少し空いている)場合は、Eclipseをお勧めします。パスを設定する以外に、ロックする準備が整います。

そして、積極的かつオープンに開発されているEclipseは、最も文書化されたIDEの1つです。チュートリアルはそのために正しく動作するようにバインドされています:)。しかし、真剣に、それはかなり良いです。そして、Android Javaでの開発、または他の種類のJavaプログラミングに展開する場合、必要なアドインをロードするだけです。また、デバッグもサポートしていますが、Notepad ++のようなものは確かに競合できません。

16
Mark Mayo

おそらく最後の行を次のように変更します:

Java -cp . $(NAME_PART)

あなたのために働くでしょう。問題は、クラスパスを設定していないことです。

Notepad ++は、単一のファイルプロジェクトのコンパイルに適しています。これ以外の場合は、IDE、または少なくともJavaコンパイラの代わりに ant と統合する必要があります。

2
kgiannakakis

次のようにJavaコマンドでクラスパスを設定します。

Java -classpath “$(CURRENT_DIRECTORY)” “$(NAME_PART)”
1
dogbane

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
1
sly7_7

最近、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の最後に追加しました。その時点から私が観察した動作は次のとおりです。

  • 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を更新または削除することでした。

0
Tanz87

上記のようにEclipseを使用して、Javaプロジェクトを作成します。プロジェクトを作成したら、使用するJavaファイルをドラッグアンドドロップします。これにより、Eclipseはファイルのコピーを作成してファイルにリンクします。つまり、1つのファイルに加えたすべての変更が他のファイルにコピーされます。

0
oscarMg

この小さなコードをメモ帳++の「実行」モジュールで使用できます。

cmd /k "cd /D "$(CURRENT_DIRECTORY)" & Java "$(NAME_PART)""

注:これは、このトピックで説明したように、notepad ++でpythonを実行するのに使用したコードソリューションとほぼ同じです。 How to Execute a Python Fileメモ帳で++?

0
RooGi

私はこれを見つけました 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)
0
neolei

私は受け入れられた答えに同意しますが、時々 Textpad を使用して小さなプログラムをすばやく作成/コンパイル/実行しますJavaプログラム。Textpadにはこの組み込みツール(ツール/外部ツール)このオプションが表示されない場合、Configure/Preferences/Toolsに移動して追加する必要があると思うので、Ctrl-1を押してコンパイルし、Ctrl-2を押して実行します。 、ライブラリなどはありません。

0
Boris Lopez

私の状況はあなたの状況と似ていますが、

Cmdで「hello world」アプリケーションを正しくコンパイルして実行しましたが、notepad ++では、コンパイルしかできませんが、クラスファイルは実行できません。

理由は、jd​​k1.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をコンパイルして完全に実行します。

これが誰にも役立つことを願っています。

0
lgt945

Jdk binパスのシステム環境変数を追加してみることができます。 Notepad ++で初めてJavaを実行したときに、同様の問題が発生しました。

0
user147