我曾经用这样的批处理来启动一个java工具:
java -classpath "./lib/JSanExport.jar;./lib/JSanRmiApiEx.jar;./lib/JSanRmiServerUx.jar" -Xms128M -Xmx768M -Dmd.command=command_VSPLA.txt -Dmd.logpath=log sanproject.getmondat.RJMdMain
由于某些原因,我需要将该批次转换为Powershell脚本。 但是,当我复制我的PowerShell脚本上的同一行我得到一个错误,而我启动它在同一个工作目录。
c:\Program Files\ExportTool\export>powershell .\Run_VSPLA.ps1 Exception in thread "main" java.lang.NoClassDefFoundError: /command=command_VSPLA/txt Caused by: java.lang.ClassNotFoundException: .command=command_VSPLA.txt 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: .command=command_VSPLA.txt. Program will exit.
你知道发生了什么?
尝试在classpath之前设置jvm选项:
java -Xms128M -Xmx768M -Dmd.command=command_VSPLA.txt -Dmd.logpath=log -classpath "./lib/JSanExport.jar;./lib/JSanRmiApiEx.jar;./lib/JSanRmiserverUx.jar" sanproject.getmondat.RJMdMain
它搜索名为/ command = command_VSPLA / txt的类。 对于批处理=
是一个分隔符,并以与powershell不同的方式进行分析。
编辑
OP给出的解决方案:
java -Xms128M -Xmx768M "-Dmd.command=.\command_VSPLA.txt" "-Dmd.logpath=log" -classpath "./lib/JSanExport.jar;./lib/JSanRmiApiEx.jar;./lib/JSanRmiserverUx.jar" sanproject.getmondat.RJMdMain
看起来像它找不到command_VSPLA.txt,也许尝试一个完整的路径。