我正在尝试在Notepad ++中创建一个基本的Java IDE,只要您不使用包,这很容易。但是如果你需要使用-classpath
参数,一切都会变得困难。
我想使用这些代码,我想你可以理解:
NPP_SAVE
SET_ENV NPP_FULL_CURRENT_PATH=$(FULL_CURRENT_PATH)
SET_ENV NPP_CURRENT_DIRECTORY=$(CURRENT_DIRECTORY)
SET_ENV NPP_NAME_PART=$(NAME_PART)
npp_run cmd /k d:\Users\User\Desktop\script.cmd
SETX CLASSPATH %CD%
set /p deep=Deepness:
:START
if /I %deep% EQU 0 goto END
cd ..
set /a deep=deep-1
goto START
:END
SETX CLASSPATH %CD%
javac -g -cp %CLASSPATH% %NPP_FULL_CURRENT_PATH%
set /p input=Package:
SETX PACKAGE %input%
java -cp %CLASSPATH% %PACKAGE%.%NPP_NAME_PART%
D:\Users\User\Desktop\programozas\java\P05\konyves>SETX CLASSPATH D:\Users\User\Desktop\programozas\java\P05\konyves
SIKERÜLT: A megadott értéket sikerült menteni.
D:\Users\User\Desktop\programozas\java\P05\konyves>set /p deep=Deepness:
Deepness:1
D:\Users\User\Desktop\programozas\java\P05\konyves>if /I 1 EQU 0 goto END
D:\Users\User\Desktop\programozas\java\P05\konyves>cd ..
D:\Users\User\Desktop\programozas\java\P05>set /a deep=deep-1
D:\Users\User\Desktop\programozas\java\P05>goto START
D:\Users\User\Desktop\programozas\java\P05>if /I 0 EQU 0 goto END
D:\Users\User\Desktop\programozas\java\P05>SETX CLASSPATH D:\Users\User\Desktop\programozas\java\P05
SIKERÜLT: A megadott értéket sikerült menteni.
D:\Users\User\Desktop\programozas\java\P05>javac -g -cp NULL D:\Users\User\Desktop\programozas\java\P05\konyves\KonyvProba.java
(SIKERÜLT意味着SUCCESS,它设法保存了价值)
您可以在cmd窗口的最后一行中看到问题。 -cp NULL
我不明白为什么它是NULL,我已将它设置在上一行。
答案 0 :(得分:0)
这些代码现在似乎有效,但可能不稳定:
set CLASSPATH=%CD%
REM Type in the relative path deepness, for
REM example "package xxx.xxx.xxx;" means 3 deepness
REM No package means 0 deepness
set /p deep=Deepness:
set /a DEEP_FINAL=deep
:START
if /I %deep% EQU 0 goto END
cd ..
set /a deep=deep-1
goto START
:END
set CLASSPATH=%CD%
REM Compiling
javac -g -cp %CLASSPATH% %NPP_FULL_CURRENT_PATH%
REM Executing
if /I %DEEP_FINAL% EQU 0 goto NOPATH
REM May include a "cls" here
REM Type in the package name, for example
REM "package java.util;" becomes "java.util"
set /p PACKAGE=Package:
cls
java -cp %CLASSPATH% %PACKAGE%.%NPP_NAME_PART%
goto FINISH
:NOPATH
cls
java -cp %CLASSPATH% %NPP_NAME_PART%
:FINISH
cd d:
cd $(CURRENT_DIRECTORY)
NPP_SAVE
SET_ENV NPP_FULL_CURRENT_PATH=$(FULL_CURRENT_PATH)
SET_ENV NPP_CURRENT_DIRECTORY=$(CURRENT_DIRECTORY)
SET_ENV NPP_NAME_PART=$(NAME_PART)
npp_run cmd /k d:\Users\User\Desktop\script.cmd
这可能与您不同。例如,大多数用户使用c:分区作为源文件。非常重要:您必须以管理员身份运行Notepad ++!我将从现在开始测试它,如果它继续工作,我会发布更多相关标签,因为它是带有Notepad ++的Java IDE。
答案 1 :(得分:0)
SETX
不在当前cmd
实例中设置环境变量,但是对于furure cmd
实例。您需要执行set
命令来设置当前实例中的值。