我正在尝试通过命令在Windows上运行.jar文件(名为MC),并且正在使用以下代码:
java -jar MC.jar
这有效,该文件具有一个弹出的UI,我可以在那里手动更改一些参数。
但是,我要在不弹出UI的情况下运行此.jar文件 ,并通过命令行设置参数。该文件随附有关如何更改每个参数的说明。这是一个示例:
java -jar MC.jar bB 0.004
当我尝试从命令行运行此命令时,出现以下错误:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at CellSim.main(CellSim.java:113)
我不知道怎么了。我应该提到我不知道如何用Java编写代码,所以我没有看过源代码(对我来说这毫无意义)。我只需要重复运行此.jar文件并使用它的输出(很多.csv文件)即可。
我还应该提到在Mac和其他Windows计算机上已经成功使用了相同的.jar文件,因此这使我认为这是我的PC特有的。
这是我在Windows PC上安装的: Java版本“ 1.8.0_191” Java(TM)SE运行时环境(内部版本1.8.0_191-b12) Java HotSpot(TM)客户端VM(内部版本25.191-b12,混合模式,共享)
这是我在Mac上安装的: Java版本“ 1.8.0_25” Java(TM)SE运行时环境(内部版本1.8.0_25-b17) Java HotSpot(TM)64位服务器VM(内部版本25.25-b02,混合模式)
请帮助!在过去的3个小时中,我一直在互联网上寻找解决方法。
您可以下载.jar文件here
在下面的图像中,有关可以更改的参数的更多详细信息。请注意,我已将文件重命名为MC.jar。 Details about the .jar file Complete list of parameters
答案 0 :(得分:0)
有两种可能的原因/情况:
属性未传递到应用程序中(据我所知,您对此有疑问)
只有确实正确传递了参数,代码中才会发生一些外部行为
如果罐子创建正确,则传递参数的方法是正确的,您可以确定。
为了检查自己并进行练习(我知道这是一个“学生”问题),您可以在main方法的循环中打印while args数组:
public static void main(String [] args) {
for(String arg : args) {
System.out.println(arg);
}
// now do your logic here
}
您可能会看到正确打印的参数
所以可能是第二种情况,您必须调试并检查在那里发生的情况
答案 1 :(得分:0)