相关疑难解决方法(0)

git可以忽略特定的行吗?

我在手机的原生浏览器上测试时使用git同步到phonegap.因此我有以下几行:

var isPhoneGap = false;
Run Code Online (Sandbox Code Playgroud)

显然我在构建时更改了这个,但是有什么方法可以设置git来忽略这一行,或者我必须把它放在自己的文件中并忽略它吗?

我在OSX 10.6上使用Gitx和终端.

git gitx

96
推荐指数
4
解决办法
3万
查看次数

复制资源时,完全搜索和替换源文件中的字符串

我有一些使用包前缀的java源文件(它们模拟一些JDK类).我使用带有前缀的这些文件来对抗某些单元测试.如果测试通过,我想生成一个包含源文件但从所有java文件中删除包前缀的jar.

我正在使用maven进行构建.有没有人知道这样做的方法?基本上我想要的是像资源插件过滤功能,但它正确搜索和替换(如:s/my.package.prefix .// g),而不是过滤$ {vars}.

maven

33
推荐指数
2
解决办法
4万
查看次数

Java等效的#ifdef,允许不可编译的代码

在Java中是否可以做一些#ifdef的事情,就像在C/C++中一样?

例:

class Test
{
    public static final boolean ANDROID = false;

    public Test()
    {
        if (ANDROID)
        {
            // do stuff that won't compile if not on android
        }
        else
        {
            // do stuff that should be only done on desktop
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,即使ANDROIDfalse,如在示例中,它仍将尝试编译内部的代码if,即使它不会(也不应该)编译.

我正在寻找一个方式做条件编译-编译器甚至不应该if,如果ANDROIDfalse.

我的问题的背景是我在Eclipse中有一个Processing应用程序.我在两个单独的项目中使用Android的正常处理和处理,但我希望能够在没有编译器错误的情况下将项目的源代码移动到彼此之间.例如,我希望能够拥有可以从Android项目移动到桌面项目的源代码文件,只需更改一些内容 - 例如,更改ANDROID = trueANDROID = false.

我真的需要它是条件编译,因为当我将源代码从Android项目复制到桌面项目时,桌面库显然不会包含Android库,然后源代码甚至不会编译.

编辑:所以现在我知道Java中没有预处理器,我的问题是:是否有任何其他方法可以在我的项目中使用此功能(能够将源代码从一个复制到另一个而只需进行非常小的更改)必须手动[取消]注释特定的代码片段并记住它们的位置?

编辑2:这不是另一个问题的重复,因为我的问题包括可能在其中存在编译器错误的代码,而这个作为副本关闭的问题则没有.(另一个问题只涉及即使没有#ifdefs 也可以正常编译的代码.)为了解释,对于另一个问题,最高评价(和接受)的答案是关于编译的代码,但是根本不在字节码中发出 …

c java eclipse processing android

11
推荐指数
1
解决办法
9288
查看次数

java中的#if,就像在c预处理器中一样

可能重复:
如何标记java代码,使其不被编译

,我们可以阻止编译块代码,如下所示:

#if 0

    //code here

#endif
Run Code Online (Sandbox Code Playgroud)

因此,即使代码块容易出错代码编译,我想在Java中使用相同的东西,这样我就可以跳过那些因为某些库缺失而无法编译的代码.

谁能帮我 ?

java eclipse android c-preprocessor

10
推荐指数
3
解决办法
2万
查看次数

Java/Android中是否有#IF和#CONST .NET等效?

我有一个项目,其中有许多代码仅在确定的版本中可用,当我修复错误时,我必须在所有副本中修复它们.这很不方便.

是否有任何#IF#CONST在Java中,如果#IF条款是假的,代码不会被编译?

.net java android const equivalent

5
推荐指数
1
解决办法
1675
查看次数

使用Android进行预处理

我想根据一些营销要求对我的代码进行一些更改.我认为最好的解决方案是使用预处理,就像在J2ME中一样.我该怎么做?这个任务有什么工具吗?谢谢,Eyal.

android preprocessor

3
推荐指数
1
解决办法
8316
查看次数

如何保护Java代码免受反编译?

我们知道,有很多java反编译工具可以将.cl​​ass转换为.java文件.

因此,我们需要保护我们的.java文件免受反编译.我知道这是一个很大的话题,也许没有结局.

通常,有两种方式:混淆器和自定义类加载器.

是否有任何成熟的解决方案或开源框架,这两种方式相结合?

另一个方面与exe4j有关,它将jar包装到exe文件中,看起来它可以保护java代码,因为我们可以看到的是exe文件而不是jar文件或类文件.但实际上,当它运行时,它会将所有jar文件分解为临时目录,这意味着很容易获得反编译器的类文件.那么从exe4j方面保护java代码的任何考虑因素呢?

感谢您的意见和建议.

更新

感谢大家的建议或经验分享.这对我很有帮助.为了得出结论,我将放弃任何具有加密功能的混淆器或自定义类加载器.因为最终Java代码可以在聪明的黑客之前公开.

我将在编译时使用C语言中的"#ifdef"等技巧删除一些核心代码.在Java中,static和final布尔类变量可用于执行相同的工作.然后,compilered类文件将不包含受需要保护的java代码.

java obfuscation decompiling

2
推荐指数
4
解决办法
2万
查看次数

Java中的#ifdef等价物?

可能重复:
Java中的#ifdef #ifndef

我试图通过使用类似这样的东西在我的Android代码中实现一些调试消息:

private static final boolean DEBUG = false;

if (DEBUG) {
// some code
}
Run Code Online (Sandbox Code Playgroud)

但是,在编译时我不断收到"非法表达式启动"错误.final boolean有效,但既不是静态也不是私有.

我在方法中声明了DEBUG变量.如果有一种方法可以使这个全局化,以便同一个Java文件中的所有内容都能看到它而不是我必须在每个需要它的方法中声明它,那么也会感激不尽.

谢谢!

java android conditional-compilation

2
推荐指数
1
解决办法
4559
查看次数

我们在java中有条件编译吗?

我们在java中替换了这些语句吗?

#ifdef MacOSX
    #import <Cocoa/Cocoa.h>
#else
    #import <Foundation/Foundation.h>
#endif
Run Code Online (Sandbox Code Playgroud)

我想根据条件编译我的java类?

c++ java compilation

1
推荐指数
1
解决办法
319
查看次数