From 4865a4110b7725acefd5b166f9b7c482ac01ce15 Mon Sep 17 00:00:00 2001
From: bsoares
Date: Tue, 17 Jul 2018 12:17:47 +0100
Subject: [PATCH] JAL-3065
Change in all repo documentation advising launching Jalview with the
-Djava.ext.dirs=LIB
option to now use
-classpath="LIB/*:..."
instead. Using the -Djava.ext.dirs= option masks the JRE's own ext dir
which contains the sunjce packages. This manifests as cipher problems
when accessing https resources (in particular https://www.ebi.ac.uk/...
when searching for PDB structures, activated when choosing Sequence->"3D
Structure Data...")
---
README | 4 ++--
help/html/features/commandline.html | 8 ++++----
src/jalview/bin/Jalview.java | 5 +++--
test/jalview/bin/CommandLineOperations.java | 4 ++--
utils/InstallAnywhere/README_IA | 8 +++++---
5 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/README b/README
index eaf226b..74f4591 100755
--- a/README
+++ b/README
@@ -23,11 +23,11 @@ For more help, read the file doc/building.html
To run application:
-java -Djava.ext.dirs=JALVIEW_HOME/lib -cp JALVIEW_HOME/jalview.jar jalview.bin.Jalview
+java -classpath "JALVIEW_HOME/lib/*:JALVIEW_HOME/jalview.jar" jalview.bin.Jalview
Replace JALVIEW_HOME with the full path to Jalview Installation Directory. If building from source:
-java -Djava.ext.dirs=JALVIEW_BUILD/dist -cp JALVIEW_BUILD/dist/jalview.jar jalview.bin.Jalview
+java -classpath "JALVIEW_BUILD/dist/*" jalview.bin.Jalview
##################
diff --git a/help/html/features/commandline.html b/help/html/features/commandline.html
index 9cffc51..92d9323 100644
--- a/help/html/features/commandline.html
+++ b/help/html/features/commandline.html
@@ -49,11 +49,11 @@
provided by InstallAnywhere any output from the application will be
sent to output.txt, not standard out.
The Jalview
application also requires a number of additional libraries on the
- class path. The command line below adds the Jalview installation's
- 'lib' directory to the list of directories that are searched for
- jars to be added to the classpath:
+ class path. The command line below adds all the jar files in the
+ Jalview installation's 'lib' directory to the classpath, as well as
+ the Jalview application jar file:
- java -Djava.ext.dirs=$INSTALL_DIR$/lib -cp $INSTALL_DIR$/jalview.jar jalview.bin.Jalview -open [FILE]
+ java -classpath "$INSTALL_DIR$/lib/*:$INSTALL_DIR$/jalview.jar" jalview.bin.Jalview -open [FILE]
Use '-help' to get more information on the command line arguments that
diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java
index 30620a1..0b1cf60 100755
--- a/src/jalview/bin/Jalview.java
+++ b/src/jalview/bin/Jalview.java
@@ -70,7 +70,8 @@ import groovy.util.GroovyScriptEngine;
/**
* Main class for Jalview Application
*
- * start with java -Djava.ext.dirs=$PATH_TO_LIB$ jalview.bin.Jalview
+ * start with java -classpath "$PATH_TO_LIB$/*:$PATH_TO_CLASSES$"
+ * jalview.bin.Jalview
*
* @author $author$
* @version $Revision$
@@ -265,7 +266,7 @@ public class Jalview
{
error.printStackTrace();
System.out.println("\nEssential logging libraries not found."
- + "\nUse: java -Djava.ext.dirs=$PATH_TO_LIB$ jalview.bin.Jalview");
+ + "\nUse: java -classpath \"$PATH_TO_LIB$/*:$PATH_TO_CLASSES$\" jalview.bin.Jalview");
System.exit(0);
}
diff --git a/test/jalview/bin/CommandLineOperations.java b/test/jalview/bin/CommandLineOperations.java
index 69a3ef7..2b40a72 100644
--- a/test/jalview/bin/CommandLineOperations.java
+++ b/test/jalview/bin/CommandLineOperations.java
@@ -55,7 +55,7 @@ public class CommandLineOperations
private static final int MINFILESIZE_BIG = 4096;
- private ArrayList successfulCMDs = new ArrayList();
+ private ArrayList successfulCMDs = new ArrayList<>();
/***
* from
@@ -118,7 +118,7 @@ public class CommandLineOperations
{
String _cmd = "java "
+ (withAwt ? "-Djava.awt.headless=true" : "")
- + " -Djava.ext.dirs=./lib -classpath ./classes jalview.bin.Jalview ";
+ + " -classpath \"./lib/*:./classes\" jalview.bin.Jalview ";
System.out.println("CMD [" + cmd + "]");
Process ls2_proc = null;
Worker worker = null;
diff --git a/utils/InstallAnywhere/README_IA b/utils/InstallAnywhere/README_IA
index e9e5176..3ccb2a4 100755
--- a/utils/InstallAnywhere/README_IA
+++ b/utils/InstallAnywhere/README_IA
@@ -6,7 +6,7 @@ Jalview Readme
To run application:
-java -Djava.ext.dirs=JALVIEW_HOME/lib -jar JALVIEW_HOME/jalview.jar [-help ... ]
+java -classpath "JALVIEW_HOME/lib/*" -jar JALVIEW_HOME/jalview.jar [-help ... ]
Replace JALVIEW_HOME with the full path to Jalview Installation Directory.
Use -help to see the available command line arguments.
@@ -15,9 +15,11 @@ For best results use a Sun java run time environment (not the gcj gnu java, sorr
If you want to the java runtime bundled with Jalview, then launch jalview like this:
-JAVA_HOME=JALVIEW_HOME/jre JALVIEW_HOME/jre/bin/java -Djava.ext.dirs=JALVIEW_HOME/lib -jar JALVIEW_HOME/jalview.jar
+JAVA_HOME=JALVIEW_HOME/jre JALVIEW_HOME/jre/bin/java -classpath "JALVIEW_HOME/lib/*:JALVIEW_HOME/jalview.jar" jalview.bin.Jalview
+[or
+JAVA_HOME=JALVIEW_HOME/jre/Contents/Home JALVIEW_HOME/jre/Contents/Home/bin/java -classpath "JALVIEW_HOME/lib/*:JALVIEW_HOME/jalview.jar" jalview.bin.Jalview
+in macOS]
-Please Note: the -jar jalview.jar option launches the jalview.bin.Jalview class in the jalview.jar
##################
--
1.7.10.2