()
| 114 | static public void main(final String[] args) { |
| 115 | EventQueue.invokeLater(new Runnable() { |
| 116 | public void run() { |
| 117 | try { |
| 118 | createAndShowGUI(args); |
| 119 | |
| 120 | } catch (Throwable t) { |
| 121 | // Windows Defender has been insisting on destroying each new |
| 122 | // release by removing core.jar and other files. Yay! |
| 123 | // https://github.com/processing/processing/issues/5537 |
| 124 | if (Platform.isWindows()) { |
| 125 | String mess = t.getMessage(); |
| 126 | String missing = null; |
| 127 | if (mess.contains("Could not initialize class com.sun.jna.Native")) { |
| 128 | missing = "jnidispatch.dll"; |
| 129 | } else if (mess.contains("NoClassDefFoundError: processing/core/PApplet")) { |
| 130 | missing = "core.jar"; |
| 131 | } |
| 132 | if (missing != null) { |
| 133 | Messages.showError("Necessary files are missing", |
| 134 | "A file required by Processing (" + missing + ") is missing.\n\n" + |
| 135 | "Make sure that you're not trying to run Processing from inside\n" + |
| 136 | "the .zip file you downloaded, and check that Windows Defender\n" + |
| 137 | "hasn't removed files from the Processing folder.\n\n" + |
| 138 | "(It sometimes flags parts of Processing as a trojan or virus.\n" + |
| 139 | "It is neither, but Microsoft has ignored our pleas for help.)", t); |
| 140 | } |
| 141 | } |
| 142 | Messages.showTrace("Unknown Problem", |
| 143 | "A serious error happened during startup. Please report:\n" + |
| 144 | "http://github.com/processing/processing/issues/new", t, true); |
| 145 | } |
| 146 | } |
| 147 | }); |
| 148 | } |
| 149 |
nothing calls this directly
no test coverage detected