(final String[] args)
| 125 | |
| 126 | |
| 127 | static public void main(final String[] args) { |
| 128 | EventQueue.invokeLater(() -> { |
| 129 | try { |
| 130 | createAndShowGUI(args); |
| 131 | |
| 132 | } catch (Throwable t) { |
| 133 | // Windows Defender has been insisting on destroying each new |
| 134 | // release by removing core.jar and other files. Yay! |
| 135 | // https://github.com/processing/processing/issues/5537 |
| 136 | if (Platform.isWindows()) { |
| 137 | String mess = t.getMessage(); |
| 138 | String missing = null; |
| 139 | if (mess.contains("Could not initialize class com.sun.jna.Native")) { |
| 140 | //noinspection SpellCheckingInspection |
| 141 | missing = "jnidispatch.dll"; |
| 142 | } else if (t instanceof NoClassDefFoundError && |
| 143 | mess.contains("processing/core/PApplet")) { |
| 144 | // Had to change how this was called |
| 145 | // https://github.com/processing/processing4/issues/154 |
| 146 | missing = "core.jar"; |
| 147 | } |
| 148 | if (missing != null) { |
| 149 | Messages.showError("Necessary files are missing", |
| 150 | "A file required by Processing (" + missing + ") is missing.\n\n" + |
| 151 | "Make sure that you're not trying to run Processing from inside\n" + |
| 152 | "the .zip file you downloaded, and check that Windows Defender\n" + |
| 153 | "has not removed files from the Processing folder.\n\n" + |
| 154 | "(Defender sometimes flags parts of Processing as malware.\n" + |
| 155 | "It is not, but Microsoft has ignored our pleas for help.)", t); |
| 156 | } |
| 157 | } |
| 158 | Messages.showTrace("Unknown Problem", |
| 159 | "A serious error happened during startup. Please report:\n" + |
| 160 | "http://github.com/processing/processing/issues/new", t, true); |
| 161 | } |
| 162 | }); |
| 163 | } |
| 164 | |
| 165 | |
| 166 | static private void createAndShowGUI(String[] args) { |
nothing calls this directly
no test coverage detected