有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

unix Amazon Web服务Java类路径

我正在尝试运行一个可以读取和写入amazon dynamo DB的应用程序。我下载了Eclipse工具包和AWS SDK,如果我在本地PC上运行该应用程序,它会运行得非常好。接下来,我将其导出到一个jar文件,并将其上载到我的EC2实例。然而,当我在那里运行它时,我得到了一个错误

  /home/apps/java/database/bin$ java -jar myJar.jar
Exception in thread "main" java.lang.NoClassDefFoundError: com/amazonaws/auth/AW                                                                  SCredentials
Caused by: java.lang.ClassNotFoundException: com.amazonaws.auth.AWSCredentials
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: DynamoDB. Program will exit.

我想这与类路径有关,但是在/home/ubuntu/中。bashrc我已将其设定为:

CLASSPATH="./:/home/apps/java/database/bin/*:/home/apps/java/database/bin/aws-java-sdk-1.3.12.jar"
export CLASSPATH

/home/apps/java/database/bin包含所有。AWS SDK中的jar文件:

  • aspectjrt。罐子
  • aspectjweaver。罐子
  • aws-java-sdk-1.3.12。罐子
  • aws-java-sdk-1.3.12-javadoc。罐子
  • aws-java-sdk-1.3.12-sources。罐子
  • aws-java-sdk-flow-build-tools-1.3.12。罐子
  • commons-codec-1.3。罐子
  • commons-logging-1.1.1。罐子
  • freemarker-2.3.18。罐子
  • httpclient-4.1.1。罐子
  • httpcore-4.1。罐子
  • jackson-core-asl-1.8.7。罐子
  • jackson-mapper-asl-1.8.7。罐子
  • 邮件-1.4.3。罐子
  • 我的罐子。罐子
  • spring-beans-3.0.7。罐子
  • spring-context-3.0.7。罐子
  • spring-core-3.0.7。罐子
  • stax-1.2.0。罐子
  • stax-api-1.0.1。罐子

我错过了什么??我已经看了一天半了。提前谢谢你


共 (2) 个答案

  1. # 1 楼答案

    “/directory/*”的类路径条目可能会把事情搞砸。类路径用冒号分隔,但星号扩展提供了空格。试试这个小shell脚本来启动它

    #!/bin/sh
    JAVA_OPTS="-Xms256M -Xmx4G"
    CP=`find /home/apps/java/database/bin/*jar -exec echo -n "{}:" \;`
    java -cp ${CP%?} -jar yourjar.jar
    

    几点注意:

    • JAVA_选项只是提醒您可能需要比默认值更多的内存
    • 最后一行CP的疯狂语法去掉了最后一个字符,因为“find”行在末尾留下了冒号
    • 如果不是可执行的jar,您可能希望包含jar并启动正确的类

    希望这有帮助

  2. # 2 楼答案

    这个LIB列表对我很有用 aws-java-sdk-1.11.285-javadoc。罐子 aws-java-sdk-1.11.285-sources。罐子 aws-java-sdk-1.11.285。罐子 aws java sdk。罐子

    aspectjrt-1.8.2.jar
    aspectjweaver.jar
    aws-swf-build-tools-1.1.jar
    commons-codec-1.9.jar
    commons-logging-1.1.3.jar
    freemarker-2.3.9.jar
    httpclient-4.5.2.jar
    httpcore-4.4.4.jar
    ion-java-1.0.2.jar
    jackson-annotations-2.6.0.jarÅ
    jackson-core-2.6.7.jar
    jackson-databind-2.6.7.1.jar
    jackson-dataformat-cbor-2.6.7.jar
    javax.mail-api-1.4.6.jar
    jmespath-java-1.11.285.jar
    joda-time-2.8.1.jar
    netty-buffer-4.1.17.Final.jar
    netty-codec-4.1.17.Final.jar
    netty-codec-http-4.1.17.Final.jar
    netty-common-4.1.17.Final.jar
    netty-handler-4.1.17.Final.jar
    netty-resolver-4.1.17.Final.jar
    netty-transport-4.1.17.Final.jar
    spring-beans-3.0.7.RELEASE.jar
    spring-context-3.0.7.RELEASE.jar
    spring-core-3.0.7.RELEASE.jar
    spring-test-3.0.7.RELEASE.jar