Come aggiungere la libreria nativa a " java.biblioteca.path " con il lancio di Eclipse (invece di sovrascriverlo)


Ho una libreria nativa che deve essere aggiunta a java.biblioteca.percorso . Con l'argomento JVM - Djava.biblioteca.percorso = percorso... Posso impostare il percorso come voglio.

Il mio problema è che la mia altra libreria (pentaho reporting) cerca i font in base al java predefinito.biblioteca.path (incluse le directory di sistema, ecc.) e l'impostazione manuale sovrascrive il percorso predefinito..

Quindi : come posso aggiungere una voce di percorso al java predefinito.biblioteca.percorso invece di sovrascriverlo (che sembra essere fatto con-Djava.biblioteca.percorso)? (Non vorrei aggiungere il percorso predefinito a mano, il che non sarebbe bello per motivi di distribuzione)

EDIT: Scusa per i dettagli mancanti; Sto lavorando con Eclipse. (La distribuzione viene eseguita con JNLP e lì posso usare nativelib sotto risorse )

Author: Touko, 2009-03-19

13 answers

Aveva dimenticato questo problema... In realtà stavo chiedendo con Eclipse, scusa per non averlo dichiarato in origine. E la risposta sembra essere troppo semplice (almeno con 3.5; probabilmente anche con versioni precedenti):

Argomenti della configurazione dell'esecuzione Java : Argomenti VM:

-Djava.library.path="${workspace_loc:project}\lib;${env_var:PATH}"

Non deve dimenticare le virgolette, altrimenti ci sono problemi con gli spazi nel PERCORSO.

 43
Author: Touko, 2010-02-22 08:44:35

Se si desidera aggiungere una libreria nativa senza interferire con java.library.pathin fase di sviluppo in Eclipse (per evitare di includere percorsi assoluti e dover aggiungere parametri alla configurazione di avvio), è possibile fornire il percorso alla posizione delle librerie native per ogni Jar nella finestra di dialogo Java Build Pathsotto Native library location. Si noti che il nome del file della libreria nativa deve corrispondere al nome del file Jar. Vedere anche questa descrizione dettagliata .

 14
Author: Fabian Steeg, 2010-01-24 23:46:30

SWT mette le DLL native necessarie in un JAR. Cerca " org.Eclipse.tsa.win32.win32.x86_3.4.1.v3449c.jar " per un esempio.

Le DLL devono essere nella radice del JAR, il JAR deve essere firmato e la DLL deve apparire con checksum nel META-INF/MANIFEST.MF per la VM per raccoglierli.

 9
Author: Aaron Digulla, 2009-12-04 08:19:23

In Windows, come questo:

- Djava.biblioteca.percorso="C:/MyLibPath;% PERCORSO %"

%PATH% è il tuo vecchio-Djava.biblioteca.percorso

 3
Author: andy boot, 2015-06-10 21:20:28

Https://bugs.eclipse.org/bugs/show_bug.cgi?id=102239 afferma che non ci sono meccanismi di sostituzione implementati nel launcher di Eclipse, almeno fino al rilascio di Juno.

Quindi è (quasi) impossibile aggiungere o anteporre un'altra cartella della libreria a java.biblioteca.percorso quando si avvia Eclipse senza previa conoscenza dell'impostazione predefinita.

Ho scritto quasi, perché dovrebbe essere possibile lasciare l'avvio di Eclipse, scaricare il contenuto di java.biblioteca.percorso e stop Eclipse in un comando. Il dump verrebbe analizzato e quindi preso come input per l'avvio di Eclipse, cioè

#!/bin/bash
# get default value of java.library.path (somehow)
default_lib_path=$( start_dump_stop_eclipse_somehow )  

# now launch Eclipse
eclipse --launcher.appendVmargs \
         -vmargs \
         -Djava.library.path="/my/native/lib/folder:${default_lib_path}"
 2
Author: whaefelinger, 2014-02-21 14:17:22

Si può aggirare questo chiamando Sistema.load () a livello di codice per caricare la libreria nativa? Questo metodo (a differenza del sistema .loadLibrary () ) consente di specificare un percorso assoluto.

 1
Author: Simon Nickerson, 2009-03-19 08:36:20

Finestra - > Preferenze - > Java - > JRE installati. Quindi scegli il tuo JRE corrente (JDK) e fai clic su Modifica. Riempi gli argomenti predefiniti della VM: - Djava.biblioteca.percorso= / usr / locale / xuggler / lib. Fatto!

 1
Author: Vadym, 2010-11-26 08:20:10

La soluzione offerta da Rob Elsner in uno dei commenti sopra funziona perfettamente (OSX 10.9, Eclipse Kepler). Bisogna aggiungere i loro percorsi aggiuntivi a quello separato da ":".

Puoi anche usare java{system_property:java.biblioteca.percorso} - Rob Elsner Novembre 22 '10 a 23:01

 1
Author: Johan, 2017-08-16 19:29:34

Nei sistemi UNIX, è possibile aggiungere alla variabile d'ambiente LD_LIBRARY_PATH. In Windows, la JVM imposta automaticamente la proprietà di sistema, java.biblioteca.path, to PATH; quindi se la dll è sul tuo PERCORSO, allora sei impostato.

 0
Author: geowa4, 2009-09-09 01:01:48

Il nome del file della libreria nativa deve corrispondere al nome del file Jar. Questo è molto molto importante. Assicurati che il nome jar e il nome dll siano gli stessi. Inoltre, si prega di consultare il post di Fabian Steeg Il mio download per jawin conteneva nomi diversi per dll e jar. E ' stato jawin.jar e jawin d .dll, nota extra ' d ' nel nome del file dll. L'ho semplicemente ribattezzato jawin.dll e impostarlo come libreria nativa in eclipse come menzionato in post " http://www.eclipsezone.com/eclipse/forums/t49342.html "

 0
Author: Dhana, 2010-07-09 07:25:24

Per qualche motivo non sono riuscito a far funzionare più cartelle (beh, lo ha fatto per un po', ma non appena ho avuto bisogno di più dll e ho aggiunto più cartelle, nessuna con spazi bianchi nel percorso). Ho quindi copiato tutte le dll necessarie in una cartella e l'ho avuto come mio java.biblioteca.percorso e ha funzionato. Non ho una spiegazione - se qualcuno lo fa, sarebbe fantastico.

 0
Author: Ustaman Sangat, 2011-12-09 16:06:28

Molte delle risposte esistenti presuppongono che tu voglia impostarlo per un particolare progetto, ma avevo bisogno di impostarlo per Eclipse stesso per supportare l'autenticazione integrata per il driver JDBC di SQL Server.

Per fare ciò, ho seguito queste istruzioni per avviare Eclipse dalla riga di comando Java invece del suo normale launcher. Poi ho appena modificato quello script per aggiungere il mio-Djava.biblioteca.argomento percorso alla riga di comando Java.

 0
Author: CrazyPyro, 2014-03-26 22:28:06

Su Windows, ho scoperto che la cosa importante è avviare Eclipse dalla riga di comando piuttosto che dal menu Start o da un collegamento, a condizione che la DLL nativa si trovi in una directory nel tuo PERCORSO. Apparentemente, questo assicura che la directory corretta sia sul percorso.

 -2
Author: Alan, 2013-08-08 19:46:26