У меня исследовательский проект (реализованный в Java 8) будет несколько классов, несколько основных функций и более 10000 строк кода в Eclipse.Программе не хватает памяти, когда ввод не маленький.
Я хотел посмотреть, будет ли она использовать меньше стековой памяти, если она скомпилирована как собственное приложение.
Я не нашел способасделать это в Eclipse.
Я сделал
$GRAALVM_HOME/bin/javac /home/appu/Downloads/2019/June/20/HelloWorld.java
Это сработало.У меня есть рабочий двоичный файл.
Я пытался
/home/appu/Downloads/Apps/GraalVM/2019-06-20/graalvm-ee-19.0.2/bin/native-image /home/appu/eclipse-nimi/NimishaGraalEE19/bin/nimi/decimate/Decimate.class
Я получил Main entry point class '/home/appu/eclipse-nimi/NimishaGraalEE19/bin/nimi/decimate/Decimate.class' not found.
Я пытался
/home/appu/Downloads/Apps/GraalVM/2019-06-20/graalvm-ee-19.0.2/bin/native-image /home/appu/eclipse-nimi/NimishaGraalEE19/bin/*
Я получил Main entry point class '/home/appu/eclipse-nimi/NimishaGraalEE19/bin/nimi' not found.
Классический
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello, World!");
}
}
компилируется в "HelloWorld.class"
, который дает исполняемый "helloworld", который является исполняемым (application / x-исполняемый).
Могу ли я получить то же самое от Eclipse?Могу ли я получить то же самое из командной строки для файлов мультикласса?
Когда я изменяю приведенный выше код на
public class HelloWorld
{
public static void hello()
{
System.out.println("Hello, World!");
}
}
и добавляю другой класс
public class Main
{
public static void main(String[] args)
{
HelloWorld.hello();
}
}
Они компилируютсяправильно, но я получаю
appu[23]/home/appu/Downloads/Apps/GraalVM/2019-06-20/graalvm-ee-19.0.2/bin/native-image /home/appu/Downloads/2019/June/23/HelloWorld.class
Build on Server(pid: 17223, port: 36631)
[/home/appu/downloads/2019/june/23/helloworld.class:17223] classlist: 415.66 ms
Error: Main entry point class '/home/appu/Downloads/2019/June/23/HelloWorld.class' not found.
Error: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception
Error: Image build request failed with exit status 1
appu[23]ls
HelloWorld.class HelloWorld.java Main.class Main.java
Мне нужен исполняемый файл (в моем случае исполняемый файл Gnu / Linux), который можно использовать как собственный исполняемый файл.
Я предпочитаюрешение от Eclipse, но Командная строка, Netbeans, VS Code, ... или любая другая техника приветствуется.
В ответ на ответ BoriS:
Я попытался сделать банкуНесколько часов назад и сделал файл с именем Main.Это не сработало.
jar cfe Main.jar Main Main.class
/home/appu/Downloads/Apps/GraalVM/2019-06-20/graalvm-ee-19.0.2/bin/native-image -jar /home/appu/Downloads/2019/June/23/Main.jar
./Main
Когда я запустил Main, который является исполняемым (application / x-исполняемый) тип, я получил
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
at Main.main(Main.java:5)
Caused by: java.lang.ClassNotFoundException: HelloWorld
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more