Я давно не использовал Java, но пытаюсь написать простое приложение Java, использующее API AWS.
Часть, на которой я застрял, заключается в том, что я не могу точно вспомнить, как связать API с кодом Java. Я не использую eclipse и не хочу, мне нравится писать свой код просто возвышенным текстом. Так что мне действительно нужно, чтобы кто-то объяснил мне, как простыми словами все это связать.
Моя файловая иерархия:
- Project
- Test.java
- aws-java-sdk-1.10.5.1.jar
- aws-java-sdk-1.10.5.1
- Documentation
- lib
- aws-java-sdk-1.10.5.1-javadoc.jar
- aws-java-sdk-1.10.5.1-sources.jar
- aws-java-sdk-1.10.5.1.jar
- aws-java-sdk-flow-build-tools-1.10.5.1.jar
- образцы
- третья сторона
Я переместил aws-java-sdk-1.10.5.1.jar из папки lib и поместил его на тот же уровень исходного кода, потому что это то, что, как я думал, мне нужно сделать. Для исходного кода вот пример того, что у меня есть:
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.sns.AmazonSNSClient;
public class Test
{
public static void main(String args[])
{
BasicAWSCredentials cruds = new BasicAWSCredentials("<<ACCESS KEY>>", "<<SECRET KEY>>");
AmazonSNSClient snsClient = new AmazonSNSClient(cruds);
System.out.println("Hello World!");
}
}
В своем терминале я компилирую код с помощью команды:
javac Test.java
однако у меня это не работает, и я получаю сообщение об ошибке error: cannot find symbol. Мне удалось его скомпилировать с помощью следующей команды. (Но я чувствую, что верхняя команда должна работать, если моя иерархия верна?):
javac -cp aws-java-sdk-1.10.5.1.jar Test.java
После компиляции кода и получения файла класса я пытаюсь запустить свою программу с помощью команды
java Test
но это бросает мне след
Exception in thread "main" java.lang.NoClassDefFoundError: com/amazonaws/auth/AWSCredentials
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2688)
at java.lang.Class.getMethod0(Class.java:2937)
at java.lang.Class.getMethod(Class.java:1771)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: com.amazonaws.auth.AWSCredentials
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more
Я уверен, что это чрезвычайно глупая проблема, и в основном я не могу вспомнить, как ее правильно использовать. Если кто-то может дать мне идиотское руководство о том, как сделать эту работу, я был бы вам очень благодарен!