1. 程式人生 > >java專案加密,使用Proguard進行專案混淆加密

java專案加密,使用Proguard進行專案混淆加密

首先我介紹下我要混淆的專案框架是jeecg+easyui+spring(包含xml配置檔案,導致部分class檔案不能直接混淆)。下面開始說詳細的操作步奏:

1)將web專案的src目錄的java檔案打包,只需要選擇java檔案即可,其他配置檔案什麼的都不用選擇,如圖


2)http://proguard.sourceforge.net/下載proguard,目前我下載並使用的是proguard5.1(注:本人下載頻道也有proguard5.1)。

3)解壓proguard5.1,執行 bin目錄下的proguardgui.bat


然後會彈出如下圖所示視窗


4)點選左邊“input/output”選單,然後點選右邊的“Add input”按鈕,新增需要混淆的jar包,我這裡是test.jar,然後點選“add output”,選擇輸出的路徑和包名。


5)下面開始新增支援庫,這個地方很重要,很多同學剛開始使用這個工具的時候就是這裡老是出問題。
   點選右邊的“add”。

說明一下,這裡最好把你的eclipse裡java project裡的libraries所有Library的jar包,包含web專案lib下面的包,jdk中jre下面的包和servlet.jar包等copy到一個目錄,然後在這裡加入這些jar包。系統預設會帶上rt.jar,這裡我們可以先remove掉,然後到jre下面copy所有的包。

6)點選“shrinking”,設定成如圖所示。


7)點選“obfuscation”,設定如圖所示


8)

點選“optimization”設定如圖所示

9)點選information,設定如圖所示,注意選擇jdk版本(Target


10) 點選“process”,再點選“save configuration”,在彈出的對話方塊中,輸入要儲存的配置檔名稱(這裡我的是1111111.pro),最後點選儲存”.


11) 設定基本完成,關掉proguard視窗,找到剛剛儲存的配置檔案,開始手動修改部分配置。

以下是我的配置檔案,經測試通過,手動修改的部分為紅色字型

-injars Test\test.jar

-outjars Test\test--.jar

-libraryjars 'D:\jdk1.6.0_45\jre\lib\rt.jar'

-libraryjars hunxiao\a\activation-1.1.jar

-libraryjars hunxiao\a\activiti-cxf-5.10.jar

-libraryjars hunxiao\a\activiti-engine-5.10.jar

-libraryjars hunxiao\a\activiti-spring-5.10.jar

-libraryjars hunxiao\a\alt-rt.jar

-libraryjars hunxiao\a\alt-string.jar

-libraryjars hunxiao\a\aopalliance-1.0.jar

-libraryjars hunxiao\a\c3p0-0.9.1.2.jar

-libraryjars hunxiao\a\charsets.jar

-libraryjars hunxiao\a\commons-beanutils-1.9.1.jar

-libraryjars hunxiao\a\commons-codec-1.9.jar

-libraryjars hunxiao\a\commons-collections-3.2.1.jar

-libraryjars hunxiao\a\commons-digester-1.7.jar

-libraryjars hunxiao\a\commons-digester3-3.2.jar

-libraryjars hunxiao\a\commons-io-2.0.1.jar

-libraryjars hunxiao\a\commons-lang3-3.3.jar

-libraryjars hunxiao\a\commons-logging-1.1.3.jar

-libraryjars hunxiao\a\cos-26Dec2008.jar

-libraryjars hunxiao\a\deploy.jar

-libraryjars hunxiao\a\dom4j-1.6.1.jar

-libraryjars hunxiao\a\druid-0.2.6.jar

-libraryjars hunxiao\a\edtftpj.jar

-libraryjars hunxiao\a\ehcache-core-2.5.2.jar

-libraryjars hunxiao\a\fastjson-1.2.0.jar

-libraryjars hunxiao\a\fprzMock.jar

-libraryjars hunxiao\a\freemarker-2.3.16.jar

-libraryjars hunxiao\a\groovy-all-1.5.5.jar

-libraryjars hunxiao\a\guava-16.0.1.jar

-libraryjars hunxiao\a\hessian-4.0.7.jar

-libraryjars hunxiao\a\itext-2.1.7.jar

-libraryjars hunxiao\a\iTextAsian-2.1.jar

-libraryjars hunxiao\a\jasperreports-3.7.4.jar

-libraryjars hunxiao\a\javaws.jar

-libraryjars hunxiao\a\javax.servlet.jsp.jstl-1.2.0.v201105211821.jar

-libraryjars hunxiao\a\jce.jar

-libraryjars hunxiao\a\jfinal-1.6-bin-with-src.jar

-libraryjars hunxiao\a\jfinal-ext-eu.jar

-libraryjars hunxiao\a\jna-4.1.0.jar

-libraryjars hunxiao\a\jna-platform-4.1.0.jar

-libraryjars hunxiao\a\joda-time-2.1.jar

-libraryjars hunxiao\a\joor-0.9.3.jar

-libraryjars hunxiao\a\jsse.jar

-libraryjars hunxiao\a\jxls-core-0.9.9.jar

-libraryjars hunxiao\a\kaptcha-2.3.2.jar

-libraryjars hunxiao\a\log4j-1.2.16.jar

-libraryjars hunxiao\a\management-agent.jar

-libraryjars hunxiao\a\mybatis-3.1.1.jar

-libraryjars hunxiao\a\MySQL-connector-java-5.1.20-bin.jar

-libraryjars hunxiao\a\ojdbc6.jar

-libraryjars hunxiao\a\org.apache.taglibs.standard.glassfish-1.2.0.v201112081803.jar

-libraryjars hunxiao\a\org.springframework.aop-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.asm-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.aspects-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.beans-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.context-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.context.support-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.core-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.expression-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.instrument-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.instrument.tomcat-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.jdbc-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.jms-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.org.apache.commons.logging-1.1.1.jar

-libraryjars hunxiao\a\org.springframework.orm-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.oxm-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.test-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.transaction-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.web-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.web.portlet-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\org.springframework.web.servlet-3.1.1.RELEASE.jar

-libraryjars hunxiao\a\plugin.jar

-libraryjars hunxiao\a\poi-3.9.jar

-libraryjars hunxiao\a\quartz-1.8.6.jar

-libraryjars hunxiao\a\resources.jar

-libraryjars hunxiao\a\rt.jar

-libraryjars hunxiao\a\servlet-api.jar

-libraryjars hunxiao\a\shiro-all-1.2.3.jar

-libraryjars hunxiao\a\slf4j-api-1.6.1.jar

-libraryjars hunxiao\a\slf4j-log4j12-1.6.1.jar

-libraryjars hunxiao\a\sqlite-jdbc-3.7.2.jar

-libraryjars hunxiao\a\ssosdk-2.0-SNAPSHOT.jar

-libraryjars hunxiao\a\TaxWsBean.jar

-target 1.6

-dontshrink

-useuniqueclassmembernames

-keeppackagenames

-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod

-keepparameternames

#保留單個類

-keep public class net.easyunion.common.shiro.ShiroDbRealm

-keep public class net.easyunion.common.filters.SetCharacterEncodingFilter

-keep public class net.easyunion.common.queue.MakeQueue

#保留所有控制類(如果是SSH三大框架,由於頁面發出請求到struts核心攔截器攔截之後,找到配置檔案,配置檔案必須對應action裡面的類和方法,這裡就不能混淆類和方法,所以所有的action類包括裡面的方法都不需要混淆,按照如下方式設定就行,保留所有的Action類名和方法名)

-keep public class net.easyunion.app.invoice.controller.* {*;}

-keep public class net.easyunion.app.sysseting.controller.* {*;}

-keep public class net.easyunion.app.system.controller.* {*;}

-keep public class net.easyunion.app.system.model.* {*;}

-keep public class net.easyunion.app.supplier.controller.*  {*;}

-keep public class net.easyunion.common.controller.*  {*;}

-keep public class net.easyunion.app.Config

# Keep names - Native method names. Keep all native class/method names.

-keepclasseswithmembers,includedescriptorclasses,allowshrinking class * {

    native <methods>;

}

# Keep names - _class method names. Keep all .class method names. This may be

# useful for libraries that will be obfuscated again with different obfuscators.

-keepclassmembers,allowshrinking class * {

    java.lang.Class class$(java.lang.String);

    java.lang.Class class$(java.lang.String,boolean);

}

# Remove - System method calls. Remove all invocations of System

# methods without side effects whose return values are not used.

-assumenosideeffects public class java.lang.System {

    public static long currentTimeMillis();

    static java.lang.Class getCallerClass();

    public static int identityHashCode(java.lang.Object);

    public static java.lang.SecurityManager getSecurityManager();

    public static java.util.Properties getProperties();

    public static java.lang.String getProperty(java.lang.String);

    public static java.lang.String getenv(java.lang.String);

    public static java.lang.String mapLibraryName(java.lang.String);

    public static java.lang.String getProperty(java.lang.String,java.lang.String);

}

# Remove - Math method calls. Remove all invocations of Math

# methods without side effects whose return values are not used.

-assumenosideeffects public class java.lang.Math {

    public static double sin(double);

    public static double cos(double);

    public static double tan(double);

    public static double asin(double);

    public static double acos(double);

    public static double atan(double);

    public static double toRadians(double);

    public static double toDegrees(double);

    public static double exp(double);

    public static double log(double);

    public static double log10(double);

    public static double sqrt(double);

    public static double cbrt(double);

    public static double IEEEremainder(double,double);

    public static double ceil(double);

    public static double floor(double);

    public static double rint(double);

    public static double atan2(double,double);

    public static double pow(double,double);

    public static int round(float);

    public static long round(double);

    public static double random();

    public static int abs(int);

    public static long abs(long);

    public static float abs(float);

    public static double abs(double);

    public static int max(int,int);

    public static long max(long,long);

    public static float max(float,float);

    public static double max(double,double);

    public static int min(int,int);

    public static long min(long,long);

    public static float min(float,float);

    public static double min(double,double);

    public static double ulp(double);

    public static float ulp(float);

    public static double signum(double);

    public static float signum(float);

    public static double sinh(double);

    public static double cosh(double);

    public static double tanh(double);

    public static double hypot(double,double);

    public static double expm1(double);

    public static double log1p(double);

}

# Remove - Number method calls. Remove all invocations of Number

# methods without side effects whose return values are not used.

-assumenosideeffects public class java.lang.* extends java.lang.Number {

    public static java.lang.String toString(byte);

    public static java.lang.Byte valueOf(byte);

    public static byte parseByte(java.lang.String);

    public static byte parseByte(java.lang.String,int);

    public static java.lang.Byte valueOf(java.lang.String,int);

    public static java.lang.Byte valueOf(java.lang.String);

    public static java.lang.Byte decode(java.lang.String);

    public int compareTo(java.lang.Byte);

    public static java.lang.String toString(short);

    public static short parseShort(java.lang.String);

    public static short parseShort(java.lang.String,int);

    public static java.lang.Short valueOf(java.lang.String,int);

    public static java.lang.Short valueOf(java.lang.String);

    public static java.lang.Short valueOf(short);

    public static java.lang.Short decode(java.lang.String);

    public static short reverseBytes(short);

    public int compareTo(java.lang.Short);

    public static java.lang.String toString(int,int);

    public static java.lang.String toHexString(int);

    public static java.lang.String toOctalString(int);

    public static java.lang.String toBinaryString(int);

    public static java.lang.String toString(int);

    public static int parseInt(java.lang.String,int);

    public static int parseInt(java.lang.String);

    public static java.lang.Integer valueOf(java.lang.String,int);

    public static java.lang.Integer valueOf(java.lang.String);

    public static java.lang.Integer valueOf(int);

    public static java.lang.Integer getInteger(java.lang.String);

    public static java.lang.Integer getInteger(java.lang.String,int);

    public static java.lang.Integer getInteger(java.lang.String,java.lang.Integer);

    public static java.lang.Integer decode(java.lang.String);

    public static int highestOneBit(int);

    public static int lowestOneBit(int);

    public static int numberOfLeadingZeros(int);

    public static int numberOfTrailingZeros(int);

    public static int bitCount(int);

    public static int rotateLeft(int,int);

    public static int rotateRight(int,int);

    public static int reverse(int);

    public static int signum(int);

    public static int reverseBytes(int);

    public int compareTo(java.lang.Integer);

    public static java.lang.String toString(long,int);

    public static java.lang.String toHexString(long);

    public static java.lang.String toOctalString(long);

    public static java.lang.String toBinaryString(long);

    public static java.lang.String toString(long);

    public static long parseLong(java.lang.String,int);

    public static long parseLong(java.lang.String);

    public static java.lang.Long valueOf(java.lang.String,int);

    public static java.lang.Long valueOf(java.lang.String);

    public static java.lang.Long valueOf(long);

    public static java.lang.Long decode(java.lang.String);

    public static java.lang.Long getLong(java.lang.String);

    public static java.lang.Long getLong(java.lang.String,long);

    public static java.lang.Long getLong(java.lang.String,java.lang.Long);

    public static long highestOneBit(long);

    public static long lowestOneBit(long);

    public static int numberOfLeadingZeros(long);

    public static int numberOfTrailingZeros(long);

    public static int bitCount(long);

    public static long rotateLeft(long,int);

    public static long rotateRight(long,int);

    public static long reverse(long);

    public static int signum(long);

    public static long reverseBytes(long);

    public int compareTo(java.lang.Long);

    public static java.lang.String toString(float);

    public static java.lang.String toHexString(float);

    public static java.lang.Float valueOf(java.lang.String);

    public static java.lang.Float valueOf(float);

    public static float parseFloat(java.lang.String);

    public static boolean isNaN(float);

    public static boolean isInfinite(float);

    public static int floatToIntBits(float);

    public static int floatToRawIntBits(float);

    public static float intBitsToFloat(int);

    public static int compare(float,float);

    public boolean isNaN();

    public boolean isInfinite();

    public int compareTo(java.lang.Float);

    public static java.lang.String toString(double);

    public static java.lang.String toHexString(double);

    public static java.lang.Double valueOf(java.lang.String);

    public static java.lang.Double valueOf(double);

    public static double parseDouble(java.lang.String);

    public static boolean isNaN(double);

    public static boolean isInfinite(double);

    public static long doubleToLongBits(double);

    public static long doubleToRawLongBits(double);

    public static double longBitsToDouble(long);

    public static int compare(double,double);

    public boolean isNaN();

    public boolean isInfinite();

    public int compareTo(java.lang.Double);

    public byte byteValue();

    public short shortValue();

    public int intValue();

    public long longValue();

    public float floatValue();

    public double doubleValue();

    public int compareTo(java.lang.Object);

    public boolean equals(java.lang.Object);

    public int hashCode();

    public java.lang.String toString();

}

# Remove - String method calls. Remove all invocations of String

# methods without side effects whose return values are not used.

-assumenosideeffects public class java.lang.String {

    public static java.lang.String copyValueOf(char[]);

    public static java.lang.String copyValueOf(char[],int,int);

    public static java.lang.String valueOf(boolean);

    public static java.lang.String valueOf(char);

    public static java.lang.String valueOf(char[]);

    public static java.lang.String valueOf(char[],int,int);

    public static java.lang.String valueOf(double);

    public static java.lang.String valueOf(float);

    public static java.lang.String valueOf(int);

    public static java.lang.String valueOf(java.lang.Object);

    public static java.lang.String valueOf(long);

    public boolean contentEquals(java.lang.StringBuffer);

    public boolean endsWith(java.lang.String);

    public boolean equalsIgnoreCase(java.lang.String);

    public boolean equals(java.lang.Object);

    public boolean matches(java.lang.String);

    public boolean regionMatches(boolean,int,java.lang.String,int,int);

    public boolean regionMatches(int,java.lang.String,int,int);

    public boolean startsWith(java.lang.String);

    public boolean startsWith(java.lang.String,int);

    public byte[] getBytes();

    public byte[] getBytes(java.lang.String);

    public char charAt(int);

    public char[] toCharArray();

    public int compareToIgnoreCase(java.lang.String);

    public int compareTo(java.lang.Object);

    public int compareTo(java.lang.String);

    public int hashCode();

    public int indexOf(int);

    public int indexOf(int,int);

    public int indexOf(java.lang.String);

    public int indexOf(java.lang.String,int);

    public int lastIndexOf(int);

    public int lastIndexOf(int,int);

    public int lastIndexOf(java.lang.String);

    public int lastIndexOf(java.lang.String,int);

    public int length();

    public java.lang.CharSequence subSequence(int,int);

    public java.lang.String concat(java.lang.String);

    public java.lang.String replaceAll(java.lang.String,java.lang.String);

    public java.lang.String replace(char,char);

    public java.lang.String replaceFirst(java.lang.String,java.lang.String);

    public java.lang.String[] split(java.lang.String);

    public java.lang.String[] split(java.lang.String,int);

    public java.lang.String substring(int);

    public java.lang.String substring(int,int);

    public java.lang.String toLowerCase();

    public java.lang.String toLowerCase(java.util.Locale);

    public java.lang.String toString();

    public java.lang.String toUpperCase();

    public java.lang.String toUpperCase(java.util.Locale);

    public java.lang.String trim();

}

# Remove - StringBuffer method calls. Remove all invocations of StringBuffer

# methods without side effects whose return values are not used.

-assumenosideeffects public class java.lang.StringBuffer {

    public java.lang.String toString();

    public char charAt(int);

    public int capacity();

    public int codePointAt(int);

    public int codePointBefore(int);

    public int indexOf(java.lang.String,int);

    public int lastIndexOf(java.lang.String);

    public int lastIndexOf(java.lang.String,int);

    public int length();

    public java.lang.String substring(int);

    public java.lang.String substring(int,int);

}

# Remove - StringBuilder method calls. Remove all invocations of StringBuilder

# methods without side effects whose return values are not used.

-assumenosideeffects public class java.lang.StringBuilder {

    public java.lang.String toString();

    public char charAt(int);

    public int capacity();

    public int codePointAt(int);

    public int codePointBefore(int);

    public int indexOf(java.lang.String,int);

    public int lastIndexOf(java.lang.String);

    public int lastIndexOf(java.lang.String,int);

    public int length();

    public java.lang.String substring(int);

相關推薦

java專案加密使用Proguard進行專案混淆加密

首先我介紹下我要混淆的專案框架是jeecg+easyui+spring(包含xml配置檔案,導致部分class檔案不能直接混淆)。下面開始說詳細的操作步奏: 1)將web專案的src目錄的java檔案打包,只需要選擇java檔案即可,其他配置檔案什麼的都不用選擇,如圖

eclipse複製專案之後怎麼更改專案名等相關配置?

在工作中,我們偶爾需要建立新的專案,但是不需要自己搭建專案框架,而是直接可以複製上一個專案。複製之後,發現改了專案名字之後,訪問路徑,以及打包名字等都會保留舊的專案名,看起來非常不爽,那麼就需要我們徹底地將專案進行重新翻新。 第一部分:右擊專案 ->Properties  -&g

Java呼叫R進行畫圖

上程式碼 package com.fandatsys.dams.core.profiling.types; import com.fandatsys.dams.core.profiling.DatasetColumnChartingProfileType; i

eclipse+maven構建web專案——HelloWorld從構建專案開始學習JavaWeb

準備:在eclipse中安裝好Maven外掛。 步驟: step1:右鍵>新建>其他:   step2:點選下一步>下一步,選擇maven-archetype-webapp:   step3:填寫好Group Id和ArtifactId>完成。  

myeclipse釋出專案tomcat下專案名稱與myeclipse下專案名稱不一致問題

myeclipse中,右鍵點選專案,依次選擇屬性>MyEclipse>Project Facets>Web,在Context Root選項卡中修改Web Context-root的值,修改為新名稱。如下圖:

Unity3D專案程式加密——對dll進行混淆

這裡假設我們在Unity3D裡面寫的程式碼抽象成這樣一個Test類,裡面包含了公開和私有的變數,有自帶的Start方法、Update方法和OnGUI方法,還有public、private和protected方法。雖然說用抽象類代表了專案裡面實際的類,但為了可以看得到程式碼

vue專案配置 webpack-obfuscator 進行程式碼加密混淆

## 背景 > 公司程式碼提供給第三方使用,為了不完全洩露原始碼,需要對給出的程式碼進行加密混淆,前端程式碼雖然無法做到完全加密混淆,但是通過使用 `webpack-obfuscator` 通過增加隨機廢程式碼段、字元編碼轉義等方法可以使構建程式碼完全混淆,達到無法恢復原始碼甚至無法閱讀的目的。 #

Eclipse的Java build path可以將一個專案依賴於另外一個專案

我一直想要解決一個問題,就是找到一個模組化的方法,把兩個專案中公用的程式碼抽離,比如說資料庫表對應檔案的DAO、entity,以及對應的service,但沒有找到我想要的那種方案——我也不知道該怎麼描述我想要的這種方案,總之就像外掛一樣吧! 但Eclipse中有一種下策,就是利用Ja

JAVA架構師大型分散式高併發電商專案實戰效能優化叢集億級高併發web安全快取架構實戰

現任58到家技術委員會主席,高階技術總監,負責企業,支付,營銷、客戶關係等多個後端業務部門。本質,技術人一枚。網際網路架構技術專家,“架構師之路”公眾號作者。曾任百度高階工程師,58同城高階架構師,58同城技術委員會主席,58同城C2C技術部負責人。 內容介紹 1.大資

除錯Java專案老是自動彈出ThreadpoolExecutor

最近除錯模式啟動專案,時不時就自動彈出ThreadpoolExecutor,真心的很煩 解決辦法:(去掉Suspend execution on uncaught exceptions選項) 最近除

java的使用proguard maven進行程式碼混淆

<!-- ProGuard混淆外掛--> <plugin> <groupId>com.github.wvengen</groupId> <artifactId

#Java怎麼學?2018最新Java學習路線技術要求與專案推薦詳解!

一 基礎篇 很多人認為,java的基礎應該是C語言,這個不可否認,但是也不能說完全正確,因為兩個語言技術的內涵是不一樣的,C語言是面向語言程式設計而java語言是面向物件程式設計,打個比喻,C語言大多數是做系統應用,而java是做企業級應用的。所以,學Java不一定要學C,Java簡化了C,而在

Java架構師大型電商分散式叢集微服務高併發專案實戰

Java架構師,高併發,高效能,高可用,分散式,叢集,電商,快取,微服務,微信支付寶支付,公眾號開發,java8新特性,P2P金融專案,程式設計,功能設計,資料庫設計,第三方支付,web安全,效能調優,設計模式,資料結構,併發程式設計,虛擬機器,中介軟體,資料庫,專案實戰,大型分散式電商專案實戰視訊教程

針對SpringBoot專案中的引數傳遞使用RSA加密機制保證安全性進行封裝成工具

spring-boot-starter-security 1 概述 針對SpringBoot專案中的引數傳遞使用RSA加密機制保證安全性進行封裝成工具,實現自動加密返回資料、解密傳入資料並對映成json 2 使用  這裡的使用就比較簡單了。 (1)將工具匯入專案中。 (

Eclipse中啟動Tomcat時(MAVEN專案報錯:Could not publish to the server. java.lang.IndexOutOfBoundsException的解決過程

Eclipse中啟動Tomcat時(MAVEN專案),報錯:Could not publish to the server. java.lang.IndexOutOfBoundsException,tomcat啟動失敗,   原因:該MAVEN專案下載的本地jar包存在下載失敗的情況 &nbs

Java web專案釋出伺服器部署(完整版)

本文章只為幫助大家學習專案的釋出,為基礎篇,在此給大家示範在window環境下的專案部署及運維。 以下版本為講解示例,可自行改至匹配版本。 伺服器:window service2008 R2 Standard(提前準備好伺服器,可以在伺服器商家租伺服器,這裡就不過多講解了

一個java專案引入jar包後再把這個java專案打包遇到的jar找不到的問題

參考文章: 步驟1:準備主清單檔案 “MANIFEST.MF”, 由於是打包引用了第三方jar包的Java專案,故需要自定義配置檔案MANIFEST.MF,在該專案下建立檔案MANIFEST.MF,內容如下: Manifest-Version: 1.0 Class-

專案初始化MpVue進行開發的出現thirdScriptError錯誤的可能導致點

問題描述:        進行使用Echart進行開發小程式資料分析,因為是新開的專案,直接像官網那樣使用以下指令(vue init mpvue/mpvue-quickstart my-project),進行構建專案,多個功能完成的非常的順暢,也是僅僅設計資料格式與進行除錯

騰訊旗下子公司招聘java中高階專案經理大資料開發經理

本招聘11月前有效 地點:上海 大資料研發經理 薪資:30-40K 職位描述: 1、負責公司大資料平臺的規劃與建設。 2、組建大資料領域技術團隊,以資料為依據向運營提供決策建議。 3、負責機器學習產品總體架構,攻克技術難關和主導關鍵技術決策。 4、負責底層系統的

IDEA建立maven的web專案main資料夾下沒有javaresources目錄等原始檔夾

我們在用IDEA建立maven webApp專案的時候,建立完成後發現main資料夾下並沒有java,resources等原始檔夾目錄。這時,我們需要手動新增這些原始檔夾: 建立後的專案目錄結構: 手動新增原始檔夾: 選擇File->Project S