2

我曾经用这样的批处理启动一个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.

你知道会发生什么吗?

4

2 回答 2

2

尝试在 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
于 2013-10-22T08:32:39.737 回答
0

好像找不到command_VSPLA.txt,也许试试完整路径。

于 2013-10-22T08:23:27.043 回答