【问题标题】:Calling .jar from shell script从 shell 脚本调用 .jar
【发布时间】:2014-03-20 06:44:25
【问题描述】:

我有一个调用 .jar 文件的 shell 脚本。以下是命令:

java -Xms256m -Xmx512m -cp (path)/VxCryptor.jar

com.datalog.security.PrepareImportFile $SOURCE_FILE $TARGET_FILE -f

(path)/$ENCRYPTION_KEY

它给出了以下错误:

错误:无法找到或加载主类 com.datalog.security.PrepareImportFile

你能告诉我这个命令是做什么的吗?这个错误是关于什么的?

【问题讨论】:

  • 您是给出完整路径(以/ 开头)还是相对路径;当您在脚本中使用它时,它可能仍然无效?或者如果(path) 是一个变量,它是在脚本还是shell 中设置的,如果后者是导出的? .jar 文件的权限是否正确?
  • 是的,我正在提供完整路径(以 / 开头)并且 .jar 具有所有权限

标签: java oracle shell encryption jar


【解决方案1】:

此命令使用给定参数运行位于 jar 文件中的 java 类。

-Xms256m/-Xmx512m:JVM 可用的最小/最大内存堆大小,此处为 256m/512m。

-cp x/y/z/VxCryptor.jar:类/jar 文件的类路径。

com.datalog.security.PrepareImportFile:包含要运行的main(String[] args) 方法的类的完全限定名。

其余的是传递给com.datalog.security.PrepareImportFile.main的参数。

错误告诉你在给定的 jar 中找不到这样的类。 但是,请注意,如果给定的类路径中不存在这样的 jar,java 会说同样的话

检查:

  1. 类路径
  2. 全限定类名,即检查包是否正确。
  3. jar -tf VxCryptor.jar 显示/检查 jar 文件的内容。

【讨论】:

  • Jar 文件存在于该位置。
  • 你能用jar -tf VxCryptor.jar 来显示你的jar 文件的内容吗?这样您就可以查看您的完全限定包名称是否正确。
  • 给出错误。 java.util.zip.ZipException:打开 zip 文件时出错
  • 那么你的jar文件损坏了。你从哪里/如何得到它的?
  • 是的得到了新文件,因为它已损坏
猜你喜欢
  • 2010-12-08
  • 2016-06-22
  • 2014-06-05
  • 2018-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多