• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Kompilacja aplikacji Kotlin do Jar.

Object Storage Arubacloud
0 głosów
329 wizyt
pytanie zadane 29 kwietnia 2018 w Inne języki przez jegor377 Stary wyjadacz (13,230 p.)
zamknięte 29 kwietnia 2018 przez jegor377

Cześć! Napisałem sobie prostą aplikację w Intellij przy użyciu Kotlina i TornadoFX. Chcę sobie teraz zbuildować apkę, więc wszedłem File->Project Structure->Artifacts->+->JavaFx Application->From module wybrałem sobie ivo_main (projekt nazwałem ivo), wszedłem w JavaFx i wybrałem Application Class (guzik trzy kropki -> Choose Application Class) i w Search by Name jest informacja "Nothing to show". Wybrałem zakładkę Project i ivo/src/main/kotlin/com.company/app/MyApp.kt. W środku jest funkcja main, ale nie mogłem wybrać ani klasy ani funkcji, bo do niczego nie mogę wcisnąć ok.

https://zapodaj.net/e03a9632c5235.png.html

https://zapodaj.net/c42ea6723607f.png.html

Tak wygląda mój build.gradle

buildscript {
    ext.kotlin_version = '1.2.0'

    repositories {
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: "kotlin"
apply plugin: 'application'

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

repositories {
    mavenLocal()
    mavenCentral()
    maven {
        url "https://oss.sonatype.org/content/repositories/snapshots/"
    }
}

dependencies {
    compile 'no.tornado:tornadofx:1.7.12'
    testCompile 'junit:junit:4.12'
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
}

mainClassName = 'com.company.app.MyApp'

jar {
    manifest {
        attributes(
                'Class-Path': configurations.compile.collect { it.getName() }.join(' '),
                'Main-Class': 'com.company.app.MyApp'
        )
    }
    from(configurations.compile.collect { entry -> zipTree(entry) }) {
        exclude 'META-INF/MANIFEST.MF'
        exclude 'META-INF/*.SF'
        exclude 'META-INF/*.DSA'
        exclude 'META-INF/*.RSA'
    }
}

A to MyApp:

package com.company.app

import com.company.view.MainView
import javafx.stage.Stage
import tornadofx.*

class MyApp: App(MainView::class, Styles::class) {
    override fun start(stage: Stage) {
        stage.minWidth = 800.0
        stage.minHeight = 500.0
        stage.isMaximized = true
        super.start(stage)
    }
}

fun main(args: Array<String>) = launch<MyApp>(args)

I chcę się was zapytać co mam zrobić, żeby zbuildować tę apkę. Mogę testować, ale nie mogę zbuildować jara.

A i to samo jest przy robieniu artifacta typu JAR. Nawet udało się tam wpisać ścieżkę z buildowania od testowania, ale jak zbuildowałem to nic mi się nie pokazało.

komentarz zamknięcia: Już naprawiłem.
komentarz 29 kwietnia 2018 przez Mariusz08 Maniak (62,300 p.)
Zły język bloczka z kodem
komentarz 29 kwietnia 2018 przez jegor377 Stary wyjadacz (13,230 p.)
Nie ma kotlina, nie wiem jaki wybrać. Wiesz może jak mi pomóc z tym problemem?
komentarz 29 kwietnia 2018 przez Mariusz08 Maniak (62,300 p.)
Oh, mój błąd; wydaje mi się, że kiedyś był...

1 odpowiedź

0 głosów
odpowiedź 29 kwietnia 2018 przez jegor377 Stary wyjadacz (13,230 p.)

Problem rozwiązany. Należy exportować odpowiednie biblioteki do outputu i podpiąć pod jar executable. Należy również w polu search by name wpisać myapp i samo znajdzie (przynajmniej powinno). Cały problem polegał na tym, że ide nie kompilowało mi tego jara, bo nie dałem mu tych całych available elements do outputu.
https://zapodaj.net/f07f2589f30db.png.html

Podobne pytania

0 głosów
0 odpowiedzi 210 wizyt
0 głosów
1 odpowiedź 1,457 wizyt
pytanie zadane 19 lutego 2017 w Java przez plkpiotr Stary wyjadacz (12,420 p.)
+1 głos
1 odpowiedź 522 wizyt

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...